slitaz-tools diff tinyutils/slitaz-config @ rev 930
Finish previous tiny edit
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue Nov 25 00:41:01 2014 +0200 (2014-11-25) |
parents | 0764c1dac3c2 |
children | 5d80f6fdbdb7 |
line diff
1.1 --- a/tinyutils/slitaz-config Thu May 01 09:57:49 2014 +0200 1.2 +++ b/tinyutils/slitaz-config Tue Nov 25 00:41:01 2014 +0200 1.3 @@ -7,9 +7,11 @@ 1.4 # Author: Christophe Lincoln <pankso@slitaz.org> 1.5 # 1.6 . /lib/libtaz.sh 1.7 +export TEXTDOMAIN='slitaz-tools' #i18n 1.8 + 1.9 check_root 1.10 1.11 -title="{ SliTaz Config }" 1.12 +title="{ $(_ 'SliTaz Config') }" 1.13 about="/usr/share/doc/slitaz/post-install.txt" 1.14 tmpdir="/tmp/$(basename $0)" 1.15 tmp="$tmpdir/$$" 1.16 @@ -17,7 +19,12 @@ 1.17 width="72" 1.18 1.19 # Use a tmp directory 1.20 -mkdir -p ${tmpdir} 1.21 +mkdir -p $tmpdir 1.22 + 1.23 +quit() { 1.24 + rm -rf $tmpdir; exit 0 1.25 +} 1.26 + 1.27 1.28 # 1.29 # GUI Functions 1.30 @@ -26,45 +33,48 @@ 1.31 # Coded for the ARM first boot settings 1.32 about_post_install() { 1.33 dialog --cr-wrap \ 1.34 - --title "{ Post Installation }" \ 1.35 - --exit-label "Continue" \ 1.36 - --textbox "$about" ${height} ${width} 1.37 + --title "{ $(_ 'Post Installation') }" \ 1.38 + --exit-label "$(_ 'Continue')" \ 1.39 + --textbox "$about" $height $width 1.40 } 1.41 1.42 # Set root passwd 1.43 root_passwd() { 1.44 - dialog --title "{ Root Password }" --colors \ 1.45 - --inputbox "\nEnter new password for \Zb\Z1root" \ 1.46 - 12 ${width} 2>${tmp} 1.47 - passwd=$(cat $tmp) 1.48 - [ "$passwd" == "" ] && return 0 1.49 - echo "root:$passwd" | chpasswd --md5 >/dev/null 1.50 + dialog --title "{ $(_ 'Root Password') }" --colors \ 1.51 + --inputbox "\n$(_ 'Enter new password for \Zb\Z1root')" \ 1.52 + 12 $width 2>$tmp 1.53 + passwd=$(cat $tmp) 1.54 + [ -z "$passwd" ] && return 0 1.55 + echo "root:$passwd" | chpasswd --md5 >/dev/null 1.56 } 1.57 1.58 # Add a new user 1.59 add_user() { 1.60 - title="{ Add User }" 1.61 - dialog --title "$title" --colors \ 1.62 - --inputbox "\nEnter login name for the new \Zb\Z4user" 12 ${width} 2>${tmp} 1.63 + title2="{ $(_ 'Add User') }" 1.64 + 1.65 + dialog --title "$title2" --colors \ 1.66 + --inputbox "\n$(_ 'Enter login name for the new \Zb\Z4user')" 12 $width 2>$tmp 1.67 user=$(cat $tmp) 1.68 - [ "$user" == "" ] && return 0 1.69 - dialog --title "$title" --colors \ 1.70 - --inputbox "\nEnter password for user \Zb\Z4${user}" 12 ${width} 2>${tmp} 1.71 + [ -z "$user" ] && return 0 1.72 + 1.73 + dialog --title "$title2" --colors \ 1.74 + --inputbox "\n$(_ 'Enter password for user \Zb\Z4$user')" 12 $width 2>$tmp 1.75 passwd=$(cat $tmp) 1.76 - [ "$passwd" == "" ] && return 0 1.77 - adduser -D -g "SliTaz User" -G users ${user} 1.78 - echo "$user:$passwd" | chpasswd --md5 >/dev/null 1.79 - 1.80 - # User groups 1.81 - for group in audio cdrom video tty; do 1.82 - addgroup ${user} ${group} >/dev/null 1.83 + [ -z "$passwd" ] && return 0 1.84 + 1.85 + adduser -D -g "SliTaz User" -G users $user 1.86 + echo "$user:$passwd" | chpasswd --md5 >/dev/null 1.87 + 1.88 + # User groups 1.89 + for group in audio cdrom video tty; do 1.90 + addgroup $user $group >/dev/null 1.91 done 1.92 - 1.93 + 1.94 # Make sure system-wide applications.conf is used 1.95 - config="/home/${user}/.config" 1.96 - mkdir -p ${config}/slitaz 1.97 - cp -f /etc/slitaz/applications.conf ${config}/slitaz 1.98 - 1.99 + config="/home/$user/.config" 1.100 + mkdir -p $config/slitaz 1.101 + cp -f /etc/slitaz/applications.conf $config/slitaz 1.102 + 1.103 # Slim default user on post-install 1.104 if [ -f "/etc/slim.conf" ] && [ ! -f "/var/lib/slitaz/post-install" ]; then 1.105 sed -i s"/default_user .*/default_user $user/" /etc/slim.conf 1.106 @@ -72,101 +82,124 @@ 1.107 } 1.108 1.109 set_date() { 1.110 - clear && newline 1.111 - echo -n "Old date:"; date 1.112 + clear; newline 1.113 + echo "Old date: $(date)" 1.114 rdate -s tick.greyware.com 2>/dev/null 1.115 - echo -n "New date:"; date 1.116 + echo "New date: $(date)" 1.117 sleep 4 1.118 } 1.119 1.120 -# Catch ESSIDs and format output for Ncurses Dialog or GTK Yad tree. 1.121 -# We get the list of networks by Cell and without spaces. 1.122 +# Catch ESSIDs and format output for Ncurses Dialog or GTK Yad tree. 1.123 +# We get the list of networks by Cell and without spaces. 1.124 # Usage: detect_wifi --output=gtk (default output to dialog) 1.125 detect_wifi() { 1.126 . /etc/network.conf 1.127 ifconfig $WIFI_INTERFACE up 1.128 + 1.129 if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then 1.130 - for i in $(iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}') 1.131 - do 1.132 + IFS=$'\n'; hidden='' 1.133 + for i in $(iwlist $WIFI_INTERFACE scan | grep -Eo 'Cell [0-9]*'); do 1.134 scan=$(iwlist $WIFI_INTERFACE scan last | \ 1.135 awk '/(Cell|ESS|Qual|Encry|IE: WPA|WPA2)/ {print}' | \ 1.136 - sed s/"Cell "/Cell-/ | grep -A 5 "$i") 1.137 + sed "/$i/,/Cell/ !d") 1.138 + 1.139 essid=$(echo $scan | cut -d '"' -f 2) 1.140 1.141 - if echo "$scan" | grep -q Quality; then 1.142 - quality=$(echo $scan | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/') 1.143 - else 1.144 - quality="$(_n '-----')" 1.145 - fi 1.146 + quality=$(echo $scan | grep -Eo 'Quality[:=][^ ]*' | tr -cd '0-9/') 1.147 + [ -z "$quality" ] && quality='-----' 1.148 1.149 - crypto=$(echo $scan | sed 's/.*key:\([^ ]*\).*/\1/') 1.150 + crypto="$(echo $scan | sed 's/.*key:\([^ ]*\).*/\1/')" 1.151 + 1.152 # Check encryption type 1.153 if echo "$scan" | grep -q WPA*; then 1.154 crypto="WPA" 1.155 fi 1.156 1.157 # Connected or not connected... 1.158 - if ifconfig | grep -A 1 $WIFI_INTERFACE | \ 1.159 - grep -q inet && iwconfig $WIFI_INTERFACE | \ 1.160 - grep ESSID | grep -q -w "$essid"; then 1.161 - status=connected 1.162 + if ifconfig | grep -A1 $WIFI_INTERFACE | grep -qF 'inet' && \ 1.163 + iwconfig $WIFI_INTERFACE | grep ESSID | grep -qwF "$essid"; then 1.164 + status="..$(_ 'connected')" 1.165 else 1.166 - status="--" 1.167 + status='' 1.168 fi 1.169 - 1.170 + 1.171 # Output 1.172 - case "$output" in 1.173 - gtk) 1.174 - echo -e "$( _n 'any')\n$(_n 'N/A')\n$(_n 'none')\n$(_n '-')" 1.175 - echo -e "$essid\n$quality\n$crypto\n$status" ;; 1.176 - *) 1.177 - echo "$essid" "QA_${quality}_KEY_${crypto}_${status}" ;; 1.178 - esac 1.179 + if [ -z "$essid" ]; then 1.180 + hidden='yes' 1.181 + else 1.182 + case "$output" in 1.183 + gtk) 1.184 + #echo -e "$(_n 'any')\n$(_n 'N/A')\n$(_n 'none')\n$(_n '-')" 1.185 + echo -e "$essid\n$quality\n$crypto\n$status" ;; 1.186 + *) 1.187 + echo "$essid" 1.188 + echo "$(_ 'Quality'):${quality}..$(_ 'Key'):${crypto}${status}" ;; 1.189 + esac 1.190 + fi 1.191 done 1.192 + [ -n "$hidden" ] && echo "$(_ 'hidden.network')" "$(_ 'Connect.to.a.hidden.network')" 1.193 fi 1.194 } 1.195 1.196 -# Wireless config so users dont have to edit any config files on post 1.197 +# Show message and percentage on the dialog gauge 1.198 +msg() { 1.199 + sleep 1; echo -e "XXX\n$1\n$MSG\nXXX" 1.200 +} 1.201 + 1.202 +# Wireless config so users don't have to edit any config files on post 1.203 # install to get connected. If the wired connection is used it will auto 1.204 # connect with DHCP so no need for a dialog frontend. 1.205 wifi_setup() { 1.206 . /etc/network.conf 1.207 dialog \ 1.208 --clear --title "$title" \ 1.209 - --ok-label "Select" \ 1.210 - --menu "\n$(gettext 'Connect to a Wi-Fi network')" \ 1.211 - ${height} ${width} 14 \ 1.212 -"any" "Quality_N/A" \ 1.213 -$(detect_wifi) 2>${tmp} 1.214 - 1.215 + --ok-label "$(_ 'Select')" \ 1.216 + --menu "\n$(_ 'Connect to a Wi-Fi network')" \ 1.217 + $height $width 14 \ 1.218 +"any" "$(_ 'Connect.to.any.network')" \ 1.219 +$(detect_wifi) 2>$tmp 1.220 + 1.221 # Handle options 1.222 - case "${?}" in 1.223 - 1|255) rm -rf ${tmpdir} && exit 0 ;; 1.224 + case "$?" in 1.225 + 1|255) quit ;; 1.226 0) essid=$(cat $tmp) ;; 1.227 esac 1.228 - 1.229 - # Check if we need to prompt user for an encrypted network 1.230 - scan=$(iwlist $WIFI_INTERFACE scan | \ 1.231 - awk '/(Cell|ESS|Qual|Encry|IE: WPA|WPA2)/ {print}' | \ 1.232 - sed s/"Cell "/Cell-/ | grep -A 5 "$essid") 1.233 - if echo "$scan" | sed 's/.*key:\([^ ]*\).*/\1/' | grep -q WPA*; then 1.234 - dialog --title "{ Wi-Fi Password }" --colors \ 1.235 - --inputbox "\nEnter wifi key (password) for \Zb\Z4${essid}" \ 1.236 - 12 ${width} 2>${tmp} 1.237 + 1.238 + # Connect to hidden network 1.239 + if [ "$essid" == "$(_ 'hidden.network')" ]; then 1.240 + dialog --title "{ $(_ 'Wi-Fi ESSID') }" \ 1.241 + --inputbox "\n$(_ 'Enter Wi-Fi access point ESSID (name)')" \ 1.242 + 12 $width 2>$tmp 1.243 + essid=$(cat $tmp) 1.244 + [ -z "$essid" ] && exit 0 1.245 + 1.246 + dialog --title "{ $(_ 'Wi-Fi Password') }" --colors \ 1.247 + --inputbox "\n$(_ 'Enter Wi-Fi key (password) for \Zb\Z4$essid')" \ 1.248 + 12 $width 2>$tmp 1.249 key=$(cat $tmp) 1.250 - [ "$key" == "" ] && return 0 1.251 + else 1.252 + 1.253 + # Check if we need to prompt user for an encrypted network 1.254 + key=$(iwlist $WIFI_INTERFACE scan last | grep -E 'Cell |Encryption|ESSID' | \ 1.255 + grep -C1 "$essid" | sed -n 's|.*key:\(.*\)|\1|p') 1.256 + 1.257 + if [ "$key" == "on" ]; then 1.258 + dialog --title "{ $(_ 'Wi-Fi Password') }" --colors \ 1.259 + --inputbox "\n$(_ 'Enter Wi-Fi key (password) for \Zb\Z4$essid')" \ 1.260 + 12 $width 2>$tmp 1.261 + key=$(cat $tmp) 1.262 + [ -z "$key" ] && exit 0 1.263 + fi 1.264 fi 1.265 - 1.266 + 1.267 # Configure connection 1.268 { 1.269 - echo "XXX" && echo 30 1.270 - echo -e "\nShuting down network interfaces..." 1.271 - echo "XXX" 1.272 - stopd network.sh >/dev/null 2>&1 && sleep 2 1.273 - 1.274 - echo "XXX" && echo 30 1.275 - echo -e "\nConfiguring: /etc/network.conf..." 1.276 - echo "XXX" 1.277 + MSG="\n$(_ 'Shutting down network interfaces...')" 1.278 + msg 0; stopd network.sh >/dev/null 2>&1 1.279 + msg 10 1.280 + 1.281 + MSG="\n$(_ 'Configuring: /etc/network.conf...')" 1.282 + msg 20 1.283 # WIFI_KEY_TYPE=any should work for WEP/WPA* 1.284 sed -i \ 1.285 -e s"/^WIFI=.*/WIFI=\"yes\"/" \ 1.286 @@ -174,62 +207,55 @@ 1.287 -e s"/^WIFI_KEY=.*/WIFI_KEY=\"$key\"/" \ 1.288 -e s"/^WIFI_KEY_TYPE=.*/WIFI_KEY_TYPE=\"any\"/" \ 1.289 /etc/network.conf 1.290 - sleep 1 1.291 - 1.292 - echo "XXX" && echo 60 1.293 - echo -e "\nRestarting wifi interface..." 1.294 - echo "XXX" 1.295 - startd network.sh >/dev/null 2>&1 && sleep 3 1.296 - 1.297 - echo "XXX" && echo 90 1.298 - echo -e "\nChecking connection..." 1.299 - sleep 1 1.300 - ip=$(ifconfig | fgrep -A 1 "encap:Ethernet" | fgrep "inet" | \ 1.301 - cut -d ":" -f 2 | awk '{print $1}') 1.302 - echo "XXX" 1.303 - sleep 1 1.304 - 1.305 - echo "XXX" && echo 100 1.306 + 1.307 + MSG="\n$(_ 'Restarting Wi-Fi interface...')" 1.308 + msg 30; startd network.sh >/dev/null 2>&1 1.309 + msg 40; msg 50; msg 60; msg 70; msg 80 1.310 + 1.311 + MSG="\n$(_ 'Checking connection...')" 1.312 + msg 90; sleep 2 1.313 + ip="$(ifconfig $WIFI_INTERFACE | fgrep 'inet addr' | sed 's|.*:\([^ ]*\) .*|\1|')" 1.314 + 1.315 if [ "$ip" ]; then 1.316 - echo -e "\nIP address: $ip" 1.317 + MSG="\n$(_ 'IP address: $ip')" 1.318 else 1.319 - echo -e "\nUnable to connect..." 1.320 + MSG="\n$(_ 'Unable to connect...')" 1.321 fi 1.322 - echo "XXX" && sleep 2 1.323 - 1.324 - } | dialog --title "{ Wi-Fi Config }" --gauge "" 8 ${width} 0 1.325 + msg 100; sleep 2 1.326 + 1.327 + } | dialog --title "{ $(_ 'Wi-Fi Config') }" --gauge "" 8 $width 0 1.328 } 1.329 1.330 # Main Dialog menu 1.331 main_box() { 1.332 dialog \ 1.333 --clear --title "$title" \ 1.334 - --ok-label "Exec" --cancel-label "Quit" \ 1.335 - --menu "" ${height} ${width} 14 \ 1.336 -"keyboard" "$(gettext 'System keyboard setting')" \ 1.337 -"locale" "$(gettext 'System language setting')" \ 1.338 -"wifi-setup" "$(gettext 'Wi-Fi network settings')" \ 1.339 -"add-user" "$(gettext 'Add a new user')" \ 1.340 -"root-passwd" "$(gettext 'Change root password')" \ 1.341 -"set-date" "$(gettext 'Set system date from the web')" \ 1.342 -"quit" "$(gettext 'Exit from SliTaz Config')" 2>${tmp} 1.343 - 1.344 + --ok-label "$(_ 'Exec')" --cancel-label "$(_ 'Quit')" \ 1.345 + --menu "" $height $width 14 \ 1.346 +"keyboard" "$(_ 'System keyboard setting')" \ 1.347 +"locale" "$(_ 'System language setting')" \ 1.348 +"wifi-setup" "$(_ 'Wi-Fi network settings')" \ 1.349 +"add-user" "$(_ 'Add a new user')" \ 1.350 +"root-passwd" "$(_ 'Change root password')" \ 1.351 +"set-date" "$(_ 'Set system date from the web')" \ 1.352 +"quit" "$(_ 'Exit from SliTaz Config')" 2>$tmp 1.353 + 1.354 # Handle options 1.355 - opt=${?} 1.356 + opt="$?" 1.357 case "$opt" in 1.358 - 1|255) rm -rf ${tmpdir} && exit 0 ;; 1.359 + 1|255) quit ;; 1.360 esac 1.361 - 1.362 + 1.363 # Handle actions 1.364 action=$(cat $tmp) 1.365 case "$action" in 1.366 - keyboard) tazkeymap ;; 1.367 - locale) tazlocale ;; 1.368 - wifi-setup) wifi_setup ;; 1.369 - add-user) add_user ;; 1.370 + keyboard) tazkeymap ;; 1.371 + locale) tazlocale ;; 1.372 + wifi-setup) wifi_setup ;; 1.373 + add-user) add_user ;; 1.374 root-passwd) root_passwd ;; 1.375 - set-date) set_date ;; 1.376 - quit) rm -rf ${tmpdir} && exit 0 ;; 1.377 + set-date) set_date ;; 1.378 + quit) quit ;; 1.379 esac 1.380 } 1.381 1.382 @@ -238,8 +264,8 @@ 1.383 # 1.384 1.385 case "$1" in 1.386 - *_*) 1.387 - # Execute functions 1.388 + *_*) 1.389 + # Execute functions 1.390 $@ ;; 1.391 *) 1.392 while true; do