Remove unused VIP_* from weblogin config update
[rahunas] / tools / rahunas-weblogin-config-update.in
1 #!/bin/sh
2
3 PATH=/sbin:/bin:/usr/sbin:/usr/bin:@prefix@/sbin:@prefix@/bin
4 INIT=@sysconfdir@/default/rahunas
5 . $INIT
6
7 get_section_name () {
8   file=$1
9   
10   grep "^.*\= {$" $file | sed "s/= {//" |  sed "s/^ *\(.*[^ ]\) *$/\1/"
11 }
12
13 get_config_value () {
14   section=$1
15   key=$2
16   file=$3
17
18   cat $file | sed -e "0,/$section = {/ ! { /}/,/$section = {/ ! s/^/>>/ }" | grep "^>>" | sed -e "s/^>>//g" | grep -w "$key" | cut -d= -f2 | sed "s/^ *\(.*[^ ]\) *$/\1/" | sed 's/"//g'
19 }
20
21 # Main
22 MAIN_CONF_DIR=`get_config_value main conf_dir $RAHUNAS_CONFIG`
23
24 # DB
25 RAHUNAS_DB=@localstatedir@/lib/rahunas/rahunas.db
26 SQLITE3=/usr/bin/sqlite3
27
28 generate_config() {
29   file=$1
30   SETNAME=`get_section_name $file`
31
32   CLIENTS=`get_config_value $SETNAME clients $file`
33   VSERVER_ID=`get_config_value $SETNAME vserver_id $file`
34   RADIUS_HOST=`get_config_value $SETNAME radius_host $file`
35   RADIUS_SECRET=`get_config_value $SETNAME radius_secret $file`
36   RADIUS_ENCRYPT=`get_config_value $SETNAME radius_encrypt $file`
37   RADIUS_AUTH_PORT=`get_config_value $SETNAME radius_auth_port $file`
38   RADIUS_ACCT_PORT=`get_config_value $SETNAME radius_account_port $file`
39   RAHUNAS_HOST="localhost"
40   RAHUNAS_PORT="8123"
41   NAS_IDENTIFIER=`get_config_value $SETNAME nas_identifier $file`
42   NAS_IP_ADDRESS=`get_config_value $SETNAME vserver_ip $file`
43   NAS_LOGIN_HOST=`get_config_value $SETNAME vserver_fqdn $file`
44   NAS_LOGIN_PROTO=`get_config_value $SETNAME nas_login_proto $file`
45   test -z "$NAS_LOGIN_PROTO" && NAS_LOGIN_PROTO="https"
46
47   NAS_LOGIN_PORT=`get_config_value $SETNAME nas_login_port $file`
48   if [ -z "$NAS_LOGIN_PORT" ]; then
49     if [ "$NAS_LOGIN_PROTO" = "https" ]; then
50       NAS_LOGIN_PORT="443"
51     else
52       NAS_LOGIN_PORT="80"
53     fi
54   fi
55   NAS_PORT=`get_config_value $SETNAME nas_port $file`
56   NAS_LOGIN_TITLE=`get_config_value $SETNAME nas_login_title $file`
57   DEFAULT_REDIRECT_URL=`get_config_value $SETNAME nas_default_redirect $file`
58   DEFAULT_LANGUAGE=`get_config_value $SETNAME nas_default_language $file`
59   UAM_TEMPLATE=`get_config_value $SETNAME nas_weblogin_template $file`
60
61   printf "\$config_list['%s'] = array(\n"            "$CLIENTS"
62   printf "\t\"VSERVER_ID\" => \"%s\",\n"             "$VSERVER_ID"
63   printf "\t\"RADIUS_HOST\" => \"%s\",\n"            "$RADIUS_HOST"
64   printf "\t\"RADIUS_SECRET\" => \"%s\",\n"          "$RADIUS_SECRET"
65   printf "\t\"RADIUS_ENCRYPT\" => \"%s\",\n"         "$RADIUS_ENCRYPT"
66   printf "\t\"RADIUS_AUTH_PORT\" => %s,\n"           "$RADIUS_AUTH_PORT"
67   printf "\t\"RADIUS_ACCT_PORT\" => %s,\n"           "$RADIUS_ACCT_PORT"
68   printf "\t\"RAHUNAS_HOST\" => \"%s\",\n"           "$RAHUNAS_HOST"
69   printf "\t\"RAHUNAS_PORT\" => \"%s\",\n"           "$RAHUNAS_PORT"
70   printf "\t\"NAS_IDENTIFIER\" => \"%s\",\n"         "$NAS_IDENTIFIER"
71   printf "\t\"NAS_IP_ADDRESS\" => \"%s\",\n"         "$NAS_IP_ADDRESS"
72   printf "\t\"NAS_LOGIN_HOST\" => \"%s\",\n"         "$NAS_LOGIN_HOST"
73   printf "\t\"NAS_LOGIN_PORT\" => \"%s\",\n"         "$NAS_LOGIN_PORT"
74   printf "\t\"NAS_LOGIN_PROTO\" => \"%s\",\n"        "$NAS_LOGIN_PROTO"
75   printf "\t\"NAS_PORT\" => %s,\n"                   "$NAS_PORT"
76   printf "\t\"NAS_LOGIN_TITLE\" => \"%s\",\n"        "$NAS_LOGIN_TITLE"
77   printf "\t\"DEFAULT_REDIRECT_URL\" => \"%s\",\n"   "$DEFAULT_REDIRECT_URL"
78   printf "\t\"DEFAULT_LANGUAGE\" => \"%s\",\n"       "$DEFAULT_LANGUAGE"
79   printf "\t\"UAM_TEMPLATE\" => \"%s\",\n"           "$UAM_TEMPLATE"
80   printf ");\n\n"
81 }
82
83 update_db () {
84   file=$1
85
86   SETNAME=`get_section_name $file`
87   VSERVER_ID=`get_config_value $SETNAME vserver_id $file`
88   NAS_IDENTIFIER=`get_config_value $SETNAME nas_identifier $file`
89
90   SQL="REPLACE INTO nas VALUES ('$VSERVER_ID','$NAS_IDENTIFIER')"
91   $SQLITE3 $RAHUNAS_DB "$SQL"
92 }
93
94 clear_nas_db () {
95   SQL="DELETE FROM nas"
96   $SQLITE3 $RAHUNAS_DB "$SQL"
97 }
98
99 destfile="@sysconfdir@/rahunas/config.php"
100 if [ "$1" != "" ]; then
101   destfile="$1"
102 fi
103
104 # Clear old config
105 echo "<?php" > $destfile
106
107 for file in `find $MAIN_CONF_DIR -name '*.conf'`;
108 do
109   generate_config $file 
110 done >> $destfile
111
112 clear_nas_db
113 for file in `find $MAIN_CONF_DIR -name '*.conf'`;
114 do
115   update_db $file
116 done