flavors annotate proxy/rootfs/usr/bin/tazctl @ rev 186
Tiny edits
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Thu Dec 19 19:56:57 2013 +0000 (2013-12-19) |
parents | b15932f93d49 |
children |
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 \ |
paul@162 | 98 "IP Address:" 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 \ |
paul@162 | 142 --cancel-label "Quit" \ |
erjo@158 | 143 --colors \ |
erjo@158 | 144 --menu "$TAZ_CMD_MSG" 15 50 40\ |
paul@162 | 145 "address" " 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 \ |
paul@162 | 166 --title "Confirm password" \ |
paul@162 | 167 --insecure --passwordbox "Confirm 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 |
paul@186 | 176 msg "Passwords do not match.\nNothing changed." |
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 \ |
paul@162 | 192 --cancel-label "Quit" \ |
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" \ |
paul@162 | 197 "network" " Network 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 |