corretto bug
[brisk.git] / INSTALL.sh
1 #!/bin/bash
2 #
3 # Defaults
4 #
5 n_players=3
6 brisk_debug="TRUE"
7 ftok_path="/var/lib/brisk"
8 web_path="$HOME/brisk"
9 web_only=0
10
11 if [ -f $HOME/.brisk_install ]; then
12    . $HOME/.brisk_install
13 fi
14 if [ "x$cookie_path" = "x" ]; then
15    cookie_path=$web_path
16 fi
17 function usage () {
18     echo
19     echo "$1 -h"
20     echo "$1 [-W] [-n 3|5] [-d TRUE|FALSE] [-w web_dir] [-k <ftok_dir>] [-c <cookie_path>]"
21     echo "  -h this help"
22     echo "  -W web files only"
23     echo "  -n number of players            - def. $n_players"
24     echo "  -d activate dabug               - def. $brisk_debug"
25     echo "  -w dir where place the web tree - def. \"$web_path\""
26     echo "  -k dir where place ftok files   - def. \"$ftok_path\""
27     echo "  -c cookie path                  - def. \"$cookie_path\""
28     echo
29 }
30
31 function get_param () {
32     echo "X$2" | grep -q "^X$1\$"
33     if [ $? -eq 0 ]; then
34         # echo "DECHE" >&2
35         echo "$3"
36         return 2
37     else
38         # echo "DELA" >&2
39         echo "$2" | cut -c 3-
40         return 1
41     fi
42     return 0
43 }
44
45 #
46 #  MAIN
47 #
48 while [ $# -gt 0 ]; do
49     # echo aa $1 xx $2 bb
50     case $1 in
51         -n*) n_players="`get_param "-n" "$1" "$2"`"; sh=$?;;
52         -d*) brisk_debug="`get_param "-d" "$1" "$2"`"; sh=$?;;
53         -w*) web_path="`get_param "-w" "$1" "$2"`"; sh=$?;;
54         -k*) ftok_path="`get_param "-k" "$1" "$2"`"; sh=$?;;
55         -c*) cookie_path="`get_param "-c" "$1" "$2"`"; sh=$?;;
56         -W) web_only=1;;
57         -h) usage $0; exit 0;;
58         *) usage $0; exit 1;;
59     esac
60     # echo "SH $sh"
61     shift $sh
62 done
63
64 #
65 #  Show parameters
66 #
67 echo "    web_path:  \"$web_path\""
68 echo "    ftok_path: \"$ftok_path\""
69 echo "    n_players:   $n_players"
70
71 #
72 #  Installation
73 #
74 if [ $web_only -eq 0 ]; then
75     if [ $n_players -ne 3 -a $n_players -ne 5 ]; then
76         echo "n_players ($n_players) out of range (3|5)"
77         exit 1
78     elif [ ! -d $ftok_path ]; then
79         echo "ftok_path (\"$ftok_path\") not exists"
80         exit 2
81     fi
82     touch $ftok_path/spy.txt >/dev/null 2>&1
83     if [ $? -ne 0 ]; then
84         echo "ftok_path (\"$ftok_path\") write not allow."
85         exit 3
86     fi
87     rm $ftok_path/spy.txt
88     
89     # create the fs subtree to enable ftok-ing
90     touch ${ftok_path}/main
91     chmod 666 ${ftok_path}/main
92 fi
93 install -d $web_path
94 install -m 644 web/*.{php,phh,css,js} ${web_path}
95 cd web
96 find . -name '.htaccess' -exec install -m 644 {} ${web_path}/{} \;
97 cd -
98
99 if [ $n_players -eq 5 ]; then
100    send_time=250
101 else
102    send_time=10
103 fi
104
105 # .js substitutions
106 sed -i "s/PLAYERS_N *= *[0-9]\+/PLAYERS_N = $n_players/g" `find ${web_path} -type f -name '*.js' -exec grep -l 'PLAYERS_N *= *[0-9]\+' {} \;`
107
108 sed -i "s/^var G_send_time *= *[0-9]\+/var G_send_time = $send_time/g" `find ${web_path} -type f -name '*.js' -exec grep -l '^var G_send_time *= *[0-9]\+' {} \;`
109
110 # .ph[ph] substitutions
111 sed -i "s/define *( *PLAYERS_N, *[0-9]\+ *)/define(PLAYERS_N, $n_players)/g" `find ${web_path} -type f -name '*.ph*' -exec grep -l 'define *( *PLAYERS_N, *[0-9]\+ *)' {} \;`
112
113 sed -i "s@define *( *FTOK_PATH,[^)]*)@define(FTOK_PATH, \"$ftok_path\")@g" `find ${web_path} -type f -name '*.ph*' -exec grep -l 'define *( *FTOK_PATH,[^)]*)' {} \;`
114
115 sed -i "s@define *( *BRISK_DEBUG,[^)]*)@define(BRISK_DEBUG, $brisk_debug)@g" ${web_path}/brisk.phh
116
117 sed -i "s@var \+xhr_rd_cookiepath \+= \+\"[^\"]*\";@var xhr_rd_cookiepath = \"$cookie_path\";@g" ${web_path}/xhr.js
118
119 exit 0