tazpanel annotate index.cgi @ rev 31

index.cgi: Add support for network connection detection and listing + up po/*
author Christophe Lincoln <pankso@slitaz.org>
date Tue Apr 05 05:10:57 2011 +0200 (2011-04-05)
parents f82057fcce3f
children b4e001e85045
rev   line source
pankso@2 1 #!/bin/sh
pankso@2 2 #
pankso@14 3 # Main CGI interface for TazPanel. In on word: KISS. Use the main cas form
pankso@14 4 # command so we are faster and dont load unneeded function. If nececarry
pankso@14 5 # you can use the lib/ dir to handle external resources.
pankso@2 6 #
pankso@2 7 echo "Content-Type: text/html"
pankso@2 8 echo ""
pankso@2 9
pankso@14 10 # Common functions from libtazpanel
pankso@14 11 . lib/libtazpanel
pankso@14 12 get_config
pankso@2 13
pankso@22 14 # Include gettext helper script.
pankso@22 15 . /usr/bin/gettext.sh
pankso@22 16
pankso@22 17 # Export package name for gettext.
pankso@22 18 TEXTDOMAIN='tazpanel-cgi'
pankso@22 19 export TEXTDOMAIN
pankso@22 20
pankso@31 21 # Network interface status
pankso@31 22 interface_status() {
pankso@31 23 if ifconfig | grep -A 1 $i | grep -q inet; then
pankso@31 24 ip=`ifconfig | grep -A 1 $i | grep inet | \
pankso@31 25 awk '{ print $2 }' | cut -d ":" -f 2`
pankso@31 26 echo "<td>connected</td> <td>$ip</td>"
pankso@31 27 else
pankso@31 28 echo "<td>-</td>"
pankso@31 29 fi
pankso@31 30 }
pankso@31 31
pankso@31 32 # Catch network interface
pankso@31 33 list_network_interfaces() {
pankso@31 34 table_start
pankso@31 35 cat << EOT
pankso@31 36 <tr id="thead">
pankso@31 37 <td>`gettext "Interface"`</td>
pankso@31 38 <td>`gettext "Name"`</td>
pankso@31 39 <td>`gettext "Statut"`</td>
pankso@31 40 <td>`gettext "IP Address"`</td>
pankso@31 41 </tr>
pankso@31 42 EOT
pankso@31 43 for i in `ls /sys/class/net`
pankso@31 44 do
pankso@31 45 case $i in
pankso@31 46 eth*)
pankso@31 47 echo "<tr><td><img src='$IMAGES/ethernet.png' />$i</td>
pankso@31 48 <td>Ethernet</td> `interface_status`</tr>" ;;
pankso@31 49 wlan*|ath*|ra*)
pankso@31 50 echo "<tr><td><img src='$IMAGES/wireless.png' />$i</td>
pankso@31 51 <td>Wireless</td> `interface_status`</tr>" ;;
pankso@31 52 lo)
pankso@31 53 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td>
pankso@31 54 <td>Loopback</td> `interface_status`</tr>" ;;
pankso@31 55 *)
pankso@31 56 continue ;;
pankso@31 57 esac
pankso@31 58 done
pankso@31 59 table_end
pankso@31 60 }
pankso@31 61
pankso@2 62 #
pankso@2 63 # Commands
pankso@2 64 #
pankso@2 65
pankso@2 66 case "$QUERY_STRING" in
pankso@13 67 boot)
pankso@14 68 #
pankso@13 69 # Everything until user login
pankso@14 70 #
pankso@25 71 TITLE="- Boot"
pankso@13 72 xhtml_header
pankso@13 73 cat << EOT
pankso@13 74 <div id="wrapper">
pankso@14 75 <h2>`gettext "Boot &amp; startup"`</h2>
pankso@14 76 <p>
pankso@14 77 `gettext "Everything that appends before user login."`
pankso@14 78 </p>
pankso@14 79 </div>
pankso@13 80
pankso@13 81 <h3>`gettext "Kernel cmdline"`</h3>
pankso@13 82 <pre>
pankso@13 83 `cat /proc/cmdline`
pankso@13 84 </pre>
pankso@13 85 EOT
pankso@14 86 ;;
pankso@13 87 users|user=*)
pankso@14 88 #
pankso@13 89 # Manage system user accounts
pankso@14 90 #
pankso@8 91 TITLE="- Users"
pankso@8 92 xhtml_header
pankso@13 93 cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'`
pankso@13 94 # Parse cmdline
pankso@13 95 for opt in $cmdline
pankso@2 96 do
pankso@13 97 case $opt in
pankso@13 98 adduser=*)
pankso@13 99 user=${opt#adduser=}
pankso@13 100 cmd=adduser ;;
pankso@13 101 deluser=*)
pankso@13 102 user=${opt#deluser=}
pankso@13 103 deluser $user ;;
pankso@13 104 passwd=*)
pankso@13 105 pass=${opt#passwd=} ;;
pankso@13 106 esac
pankso@2 107 done
pankso@13 108 case "$cmd" in
pankso@13 109 adduser)
pankso@13 110 echo "$user"
pankso@13 111 echo $pass
pankso@13 112 adduser -D $user
pankso@13 113 echo "$pass" | chpasswd
pankso@13 114 for g in audio cdrom floppy video
pankso@13 115 do
pankso@13 116 addgroup $user $g
pankso@13 117 done ;;
pankso@13 118 *) continue ;;
pankso@13 119 esac
pankso@13 120 cat << EOT
pankso@13 121 <div id="wrapper">
pankso@14 122 <h2>`gettext "Manage users"`</h2>
pankso@14 123 <p>`gettext "Manage human users on your SliTaz system"`</p>
pankso@14 124 </div>
pankso@13 125 <form method="get" action="$SCRIPT_NAME">
pankso@13 126 EOT
pankso@13 127 table_start
pankso@13 128 cat << EOT
pankso@13 129 <tr id="thead">
pankso@25 130 <td>`gettext "Login"`</td>
pankso@13 131 <td>`gettext "User ID"`</td>
pankso@13 132 <td>`gettext "Name"`</td>
pankso@13 133 <td>`gettext "Home"`</td>
pankso@13 134 <td>`gettext "SHell"`</td>
pankso@13 135 </tr>
pankso@13 136 EOT
pankso@13 137 for i in `cat /etc/passwd | cut -d ":" -f 1`
pankso@13 138 do
pankso@13 139 if [ -d /home/$i ]; then
pankso@13 140 login=$i
pankso@13 141 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
pankso@13 142 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
pankso@13 143 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
pankso@13 144 sed s/,,,//`
pankso@13 145 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
pankso@13 146 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
pankso@13 147 echo '<tr>'
pankso@13 148 echo "<td><input type='hidden' name='user' />
pankso@13 149 <input type='checkbox' name='deluser' value='$login' />
pankso@13 150 <img src='$IMAGES/user.png' />$login</td>"
pankso@13 151 echo "<td>$uid:$gid</td>"
pankso@13 152 echo "<td>$name</td>"
pankso@13 153 echo "<td>$home</td>"
pankso@13 154 echo "<td>$shell</td>"
pankso@13 155 echo '</tr>'
pankso@13 156 fi
pankso@13 157 done
pankso@13 158 table_end
pankso@13 159 cat << EOT
pankso@14 160 <div>
pankso@14 161 <input type="submit" value="`gettext "Delete selected user"`" />
pankso@14 162 </div>
pankso@13 163 </form>
pankso@13 164
pankso@25 165 <h3>`gettext "Add a new user"`</h3>
pankso@13 166 <form method="get" action="$SCRIPT_NAME">
pankso@28 167 <input type="hidden" name="user" />
pankso@25 168 <p>`gettext "User login:"`</p>
pankso@28 169 <p><input type="text" name="adduser" size="30" /></p>
pankso@25 170 <p>`gettext "User password:"`</p>
pankso@28 171 <p><input type="password" name="passwd" size="30" /></p>
pankso@25 172 <input type="submit" value="`gettext "Create user"`" />
pankso@28 173 </form>
pankso@13 174 EOT
pankso@13 175 ;;
pankso@2 176 network)
pankso@14 177 #
pankso@13 178 # Network configuration
pankso@14 179 #
pankso@8 180 TITLE="- Network"
pankso@8 181 xhtml_header
pankso@13 182 cat << EOT
pankso@13 183 <div id="wrapper">
pankso@14 184 <h2>`gettext "Networking`</h2>
pankso@14 185 <p>`gettext "Manage network connection and services`</p>
pankso@14 186 </div>
pankso@14 187
pankso@31 188 `list_network_interfaces`
pankso@31 189
pankso@14 190 <h3>Output of: ifconfig -a</h3>
pankso@14 191 <pre>
pankso@14 192 `ifconfig -a`
pankso@14 193 </pre>
pankso@13 194 EOT
pankso@14 195 ;;
pankso@2 196 hardware)
pankso@14 197 #
pankso@14 198 # Hardware drivers, devices, filesystem, screen
pankso@14 199 #
pankso@8 200 TITLE="- Hardware"
pankso@8 201 xhtml_header
pankso@13 202 cat << EOT
pankso@13 203 <div id="wrapper">
pankso@14 204 <h2>`gettext "Drivers &amp; Devices"`</h2>
pankso@14 205 <p>`gettext "Manage your computer hardware`</p>
pankso@14 206 </div>
pankso@13 207 EOT
pankso@2 208 echo '<pre>'
pankso@14 209 fdisk -l | fgrep Disk
pankso@13 210 echo '</pre>'
pankso@14 211 echo '<pre>'
pankso@14 212 df -h | grep ^/dev
pankso@14 213 echo '</pre>'
pankso@14 214 echo '<pre>'
pankso@14 215 lspci
pankso@14 216 echo '</pre>'
pankso@14 217 ;;
pankso@2 218 *)
pankso@14 219 #
pankso@2 220 # Default xHTML content
pankso@14 221 #
pankso@8 222 xhtml_header
pankso@2 223 cat << EOT
pankso@13 224 <div id="wrapper">
pankso@14 225 <h2>`gettext "Host:"` `hostname`</h2>
pankso@14 226 <p>`gettext "SliTaz administration et configuration Panel"`<p>
pankso@14 227 </div>
pankso@14 228
pankso@14 229 <h3>`gettext "Summary"`</h3>
pankso@14 230 <div id="summary">
pankso@14 231
pankso@2 232 <p>
pankso@14 233 `gettext "Uptime:"` `uptime`
pankso@2 234 </p>
pankso@14 235 <p>
pankso@25 236 `gettext "Memory in Mb"`
pankso@14 237 `free -m | grep Mem: | awk \
pankso@14 238 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'`
pankso@14 239 </p>
pankso@14 240 <p>
pankso@14 241 `gettext "Filesystem usage statistics:"`
pankso@14 242 </p>
pankso@14 243 <pre>
pankso@14 244 `df -h | grep ^/dev`
pankso@14 245 </pre>
pankso@14 246
pankso@31 247 `list_network_interfaces`
pankso@31 248
pankso@14 249 <!-- Close summary -->
pankso@14 250 </div>
pankso@2 251 EOT
pankso@2 252 ;;
pankso@2 253 esac
pankso@2 254
pankso@14 255 xhtml_footer
pankso@14 256 exit 0