flavors annotate proxy/rootfs/usr/bin/tazctl @ rev 158

Add Proxy (squid + sqduidclamav + SquidGuard + sarg)
author Eric Joseph-Alexandre <erjo@slitaz.org>
date Thu Mar 15 00:56:34 2012 +0100 (2012-03-15)
parents
children b15932f93d49
rev   line source
erjo@158 1 #!/bin/sh
erjo@158 2 # Tazadmin - SliTaz System Configuration
erjo@158 3 #
erjo@158 4 #
erjo@158 5 # Author : Eric Joseph-Alexandre (Erjo) <erjo@slitaz.org>
erjo@158 6 #
erjo@158 7
erjo@158 8 #export DIALOGRC=$PWD/rc/slackware.rc
erjo@158 9
erjo@158 10 VERSION=1.0
erjo@158 11
erjo@158 12 : ${DIALOG=dialog}
erjo@158 13
erjo@158 14 BACKTITLE="SliTaz Configuration Tools v.${VERSION}"
erjo@158 15 COMMAND=$1
erjo@158 16 LOG=/tmp/$(basename $0).log
erjo@158 17 OUT=/tmp/_retval_
erjo@158 18 DATADIR=/usr/share/slitaz-tools/tazadmin/
erjo@158 19 #DATADIR=./
erjo@158 20
erjo@158 21 BS="15 50"
erjo@158 22
erjo@158 23 # Messages language setting
erjo@158 24 # Switch to default English if $LANG.msg doesn't exist.
erjo@158 25 set_locale()
erjo@158 26 {
erjo@158 27 if [ -f ${LANG%%_*}.msg ]; then
erjo@158 28 . ${DATADIR}${LANG%%_*}.msg
erjo@158 29 fi
erjo@158 30 }
erjo@158 31
erjo@158 32 # use --msgbox.
erjo@158 33 # syntax: msg ["Title"] "Message text"
erjo@158 34 msg()
erjo@158 35 {
erjo@158 36 if [ $# -gt 1 ]; then
erjo@158 37 TITLE=$1
erjo@158 38 shift
erjo@158 39 MSG="$@"
erjo@158 40 else
erjo@158 41 MSG="$@"
erjo@158 42 fi
erjo@158 43 $DIALOG --title " ${TITLE:-Message} " \
erjo@158 44 --colors --backtitle "$BACKLIST" \
erjo@158 45 --clear --msgbox "\n$MSG" 0 0
erjo@158 46 }
erjo@158 47
erjo@158 48 # Exit install if user is not root.
erjo@158 49 check_root()
erjo@158 50 {
erjo@158 51 if test $(id -u) != 0 ; then
erjo@158 52 error_message "$ERR_CHK_ROOT"
erjo@158 53 exit 0
erjo@158 54 fi
erjo@158 55 }
erjo@158 56
erjo@158 57 # functions
erjo@158 58 #
erjo@158 59 trim(){
erjo@158 60 read LINE
erjo@158 61 echo $LINE
erjo@158 62 }
erjo@158 63
erjo@158 64 get_argc()
erjo@158 65 {
erjo@158 66 echo $#
erjo@158 67 }
erjo@158 68
erjo@158 69
erjo@158 70
erjo@158 71
erjo@158 72 get_hostname()
erjo@158 73 {
erjo@158 74 # Set hostname
erjo@158 75 HOSTNAME=$(cat /etc/hostname)
erjo@158 76 exec 3>&1
erjo@158 77 HOSTNAME=`$DIALOG --backtitle "$BACKTITLE" --title "Hostname" --clear \
erjo@158 78 --inputbox "Enter your computer hostname" $BS "${HOSTNAME}" 2>&1 1>&3`
erjo@158 79 ret=$?
erjo@158 80 exec 3>&-
erjo@158 81 # if $HOSTNAME is set we update /etc/hostname
erjo@158 82 # and change current hostname.
erjo@158 83 if [ ! -z ${HOSTNAME} ]; then
erjo@158 84 echo ${HOSTNAME} > /etc/hostname
erjo@158 85 hostname $(cat /etc/hostname)
erjo@158 86 fi
erjo@158 87 }
erjo@158 88
erjo@158 89 set_ip_adress()
erjo@158 90 {
erjo@158 91 # Set static configuration for Network.
erjo@158 92 . /etc/network.conf
erjo@158 93 exec 3>&1
erjo@158 94 IPCONFIG=`$DIALOG --ok-label "Submit" \
erjo@158 95 --backtitle "$backtitle" --extra-button --extra-label "${BTN_DHCP:-Use DHCP server}"\
erjo@158 96 --form "Here is a possible piece of a configuration program." \
erjo@158 97 15 55 0 \
erjo@158 98 "IP Adress:" 1 1 "$IP" 1 20 20 0 \
erjo@158 99 "Network mask:" 2 1 "$NETMASK" 2 20 20 0 \
erjo@158 100 "Default gateway:" 3 1 "$GATEWAY" 3 20 20 0 \
erjo@158 101 "DNS server(s):" 4 1 "$DNS_SERVER" 4 20 20 0 \
erjo@158 102 2>&1 1>&3`
erjo@158 103 ret=$?
erjo@158 104 exec 3>&-
erjo@158 105
erjo@158 106 case "$ret" in
erjo@158 107 0)
erjo@158 108 if [[ "`get_argc $IPCONFIG`" -gt "1" ]]; then
erjo@158 109 set_static_ip $IPCONFIG
erjo@158 110 else
erjo@158 111 msg "${ERR_BED_IP:-Invalid values.}"
erjo@158 112 fi
erjo@158 113 ;;
erjo@158 114 3)
erjo@158 115 get_dhcp_lease ;;
erjo@158 116 esac
erjo@158 117 }
erjo@158 118
erjo@158 119 get_dhcp_lease()
erjo@158 120 {
erjo@158 121 sed -i 's/DHCP=.*/DHCP="yes"/' /etc/network.conf
erjo@158 122 sed -i 's/STATIC=.*/STATIC="no"/' /etc/network.conf
erjo@158 123 /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid &
erjo@158 124 }
erjo@158 125
erjo@158 126 set_static_ip()
erjo@158 127 {
erjo@158 128 sed -i 's/DHCP=.*/DHCP="no"/' /etc/network.conf
erjo@158 129 sed -i 's/STATIC=.*/STATIC="yes"/' /etc/network.conf
erjo@158 130 sed -i -e "s/IP=".*"/IP=\"$1\"/" /etc/network.conf
erjo@158 131 sed -i -e "s/NETMASK=".*"/NETMASK=\"$2\"/" /etc/network.conf
erjo@158 132 sed -i -e "s/GATEWAY=".*"/GATEWAY=\"$3\"/" /etc/network.conf
erjo@158 133 sed -i -e "s/DNS_SERVER=".*"/DNS_SERVER=\"$4\"/" /etc/network.conf
erjo@158 134 }
erjo@158 135
erjo@158 136 network_menu()
erjo@158 137 {
erjo@158 138 ret=0
erjo@158 139 until [ $ret -eq 1 ];do
erjo@158 140 $DIALOG --title "$MENU_TITLE" \
erjo@158 141 --backtitle "$BACKTITLE" --clear \
erjo@158 142 --cancel-label "Quitter" \
erjo@158 143 --colors \
erjo@158 144 --menu "$TAZ_CMD_MSG" 15 50 40\
erjo@158 145 "adress" " Network settings" \
erjo@158 146 "hostname" " Set your hostname" \
erjo@158 147 2> $OUT
erjo@158 148 ret=$?
erjo@158 149 case `cat $OUT` in
erjo@158 150 hostname)
erjo@158 151 get_hostname ;;
erjo@158 152 adress)
erjo@158 153 set_ip_adress ;;
erjo@158 154 esac
erjo@158 155 done
erjo@158 156 }
erjo@158 157
erjo@158 158 set_password()
erjo@158 159 {
erjo@158 160 SEP='
erjo@158 161 '
erjo@158 162 exec 3>&1
erjo@158 163 PASSWORD=`$DIALOG --backtitle "$BACKTITLE" --title "Set password" --clear \
erjo@158 164 --separate-widget "$SEP" \
erjo@158 165 --insecure --passwordbox "Enter new password for user below: \n\n" 10 50 \
erjo@158 166 --title "Confirme password" \
erjo@158 167 --insecure --passwordbox "Confirme new password for user below: \n\n" 10 50 2>&1 1>&3`
erjo@158 168 ret=$?
erjo@158 169 exec 3>&-
erjo@158 170 if [ -z "${PASSWORD}" ]; then
erjo@158 171 msg "Password not set"
erjo@158 172 else
erjo@158 173 PASS1="$(echo $PASSWORD | cut -d ' ' -f1)"
erjo@158 174 PASS2="$(echo $PASSWORD | cut -d ' ' -f2)"
erjo@158 175 if [ "$PASS1" != "$PASS2" ]; then
erjo@158 176 msg "Passwords don't match.\nNothing change."
erjo@158 177 else
erjo@158 178 echo "root:$PASS1" | chpasswd
erjo@158 179 fi
erjo@158 180 fi
erjo@158 181 }
erjo@158 182
erjo@158 183 ##
erjo@158 184 # Program sequence
erjo@158 185 #
erjo@158 186 set_locale
erjo@158 187 check_root
erjo@158 188
erjo@158 189 until [ $retval -eq 1 ];do
erjo@158 190 $DIALOG --title "$MENU_TITLE" \
erjo@158 191 --backtitle "$BACKTITLE" --clear \
erjo@158 192 --cancel-label "Quitter" \
erjo@158 193 --colors \
erjo@158 194 --menu "$TAZ_CMD_MSG" 15 50 40\
erjo@158 195 "keymap" " Keyboard mapping" \
erjo@158 196 "locale" " Language setting" \
erjo@158 197 "network" " Netwok configuration" \
erjo@158 198 "password" " Change root password" \
erjo@158 199 2> $OUT
erjo@158 200
erjo@158 201 retval=$?
erjo@158 202
erjo@158 203 # Execute commands
erjo@158 204 #
erjo@158 205 case `cat $OUT` in
erjo@158 206 keymap)
erjo@158 207 if [ -x /sbin/tazkeymap ]; then
erjo@158 208 tazkeymap
erjo@158 209 else
erjo@158 210 msg "Unable to find tazkeymap !"
erjo@158 211 fi
erjo@158 212 ;;
erjo@158 213 locale)
erjo@158 214 if [ -x /sbin/tazlocale ]; then
erjo@158 215 tazlocale
erjo@158 216 else
erjo@158 217 msg "Unable to find tazlocale !"
erjo@158 218 fi
erjo@158 219 ;;
erjo@158 220 network)
erjo@158 221 network_menu;;
erjo@158 222 password)
erjo@158 223 set_password ;;
erjo@158 224 esac
erjo@158 225 done
erjo@158 226
erjo@158 227 exit 0