Skip to content

Commit a4c4a2b

Browse files
committed
Move Script to GitHub
1 parent ebc047e commit a4c4a2b

1 file changed

Lines changed: 95 additions & 0 deletions

File tree

togglestate

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#!/bin/bash
2+
saveIFS=$IFS
3+
IFS='=&'
4+
parm=($QUERY_STRING)
5+
IFS=$saveIFS
6+
for ((i=0; i<${#parm[@]}; i+=2))
7+
do
8+
declare var_${parm[i]}=${parm[i+1]}
9+
done
10+
echo
11+
12+
version="0.6"
13+
# Now with GitHub :D
14+
15+
function getstate {
16+
currentstate=$(grep open $1)
17+
if [[ $currentstate == *"true"* ]]; then
18+
echo -e "\t\"status\": \"open\","
19+
elif [[ $currentstate == *"false"* ]]; then
20+
echo -e "\t\"status\": \"closed\","
21+
fi
22+
}
23+
24+
function changestate {
25+
if ! [ -z $var_text ]; then var_state=$var_text; fi
26+
echo -e "{\n\t\"space\": \"$var_space\"," # Create JSON
27+
if [[ $(getstate $3) = $var_state || $var_state = "show" ]] ; then
28+
if [[ $(getstate $3) = $var_state ]]; then
29+
echo -e "\t\"change\": \"no change\",\n"
30+
fi
31+
echo "$(getstate $3)"
32+
else
33+
if [ $var_token = $1 ]; then
34+
if [ $var_state = "open" ]; then
35+
sed -i s/'"open": false'/'"open": true'/g $3
36+
sed -i s/CLOSED/OPEN/g $4
37+
echo -e "\t\"change\": \"open\","
38+
elif [ $var_state = "closed" ]; then
39+
sed -i s/'"open": true'/'"open": false'/g $3
40+
sed -i s/OPEN/CLOSED/g $4
41+
echo -e "\t\"change\": \"closed\","
42+
elif [ $var_state = "help" ]; then
43+
echo -e "\t\"available_commands\": {\n\t\t\"open\": \"Set status to 'open'\",\n\t\t\"closed\": \"Set status to closed\",\n\t\t\"show\": \"Show current sace status\",\n\t\t\"help\": \"Show this help\"\n\t},"
44+
else
45+
echo -e "\t\"change\": \"unchanged because of wrong given state information\",\n\t\"hint\": \"try 'help' as parameter for available options\","
46+
fi
47+
echo -e "\t\"access\": \"authorized\","
48+
else
49+
echo -e "\t\"access\": \"unauthorized\","
50+
echo -e "\t\"error\": {\n\t\t\"reason\": \"invalid token\",\n\t\t\"token_used\": \"$var_token\"\n\t},"
51+
fi
52+
fi
53+
echo -e "\t\"version\": \"$version\"\n}\n\n"
54+
55+
}
56+
57+
# Die Konfiguration wird aus einer Seperaten nicht mit dem git gesyncten CSV Datei gelesen:
58+
IFS=':'
59+
declare -a config=( $( cat $(dirname $0)/spaceapi-server/config.csv ) )
60+
IFS=$saveIFS
61+
62+
case $var_space in
63+
${config[0]})
64+
# Eintrag fuer den IRC Bot: !see-base ["", "open", "closed"]
65+
token="${config[1]}"
66+
jsonfilename="${config[2]}"
67+
mapfilename="${config[3]}"
68+
changestate $token $var_space $jsonfilename $mapfilename
69+
;;
70+
${config[5]})
71+
# Eintrag fuer den Slack channel: '/see-base show' s/show/open|closed|help/g
72+
token="${config[6]}"
73+
jsonfilename="${config[7]}"
74+
mapfilename="${config[8]}"
75+
changestate $token $var_space $jsonfilename $mapfilename
76+
;;
77+
${config[10]})
78+
# Eintrag für den IRC Bot: !toolbox ["", "open", "closed"]
79+
token="${config[11]}"
80+
jsonfilename="${config[12]}"
81+
mapfilename="${config[13]}"
82+
changestate $token $var_space $jsonfilename $mapfilename
83+
;;
84+
${config[15]})
85+
# Eintrag für den Slack Channel: '/space show' s/show/open|closed|help/g
86+
token="${config[16]}"
87+
jsonfilename="${config[17]}"
88+
mapfilename="${config[18]}"
89+
changestate $token $var_space $jsonfilename $mapfilename
90+
;;
91+
*)
92+
# Falls ein ungueltiger Space verwendet wird...
93+
echo -e "{\n\t\"space\": \"no such space\",\n\t\"error\"[\n\t\t\"reason\": \"Space does not exisit in this script\",\n\t\t\"asked_for\": \"$var_space\"\n\t],\n\t\"version\": \"$version\"\n}"
94+
;;
95+
esac

0 commit comments

Comments
 (0)