tazpanel rev 364
Add TAZPANEL_DAEMON support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Jun 29 17:06:39 2013 +0200 (2013-06-29) |
parents | df2865290e55 |
children | 9357d34b6d5f |
files | boot.cgi hardware.cgi index.cgi lib/libtazpanel styles/default/header.html |
line diff
1.1 --- a/boot.cgi Sun Jun 23 16:55:26 2013 +0300 1.2 +++ b/boot.cgi Sat Jun 29 17:06:39 2013 +0200 1.3 @@ -81,6 +81,7 @@ 1.4 <tr> 1.5 <td>$(gettext 'Name')</td> 1.6 <td>$(gettext 'Description')</td> 1.7 + <td></td> 1.8 <td>$(gettext 'Status')</td> 1.9 <td>$(gettext 'Action')</td> 1.10 <td>$(gettext 'PID')</td> 1.11 @@ -103,6 +104,10 @@ 1.12 [ echo "RUN_DAEMONS" | fgrep $name ] && boot="on boot" 1.13 # Standard SliTaz busybox daemons and firewall 1.14 echo -n "<td>" 1.15 + cfg="" 1.16 + grep -qi "^${name}_OPTIONS=" /etc/daemons.conf && cfg="options|$cfg" 1.17 + [ -s /etc/$name.conf ] && cfg="edit|$cfg" 1.18 + [ -n "$(which $name)" ] && cfg="man|help|$cfg" 1.19 case "$name" in 1.20 firewall) 1.21 gettext 'SliTaz Firewall with iptable rules' ;; 1.22 @@ -111,20 +116,25 @@ 1.23 ntpd) 1.24 gettext 'Network time protocol daemon' ;; 1.25 ftpd) 1.26 + cfg="man|help|edit::/etc/inetd.conf" 1.27 gettext 'Anonymous FTP server' ;; 1.28 udhcpd) 1.29 gettext 'Busybox DHCP server' ;; 1.30 syslogd|klogd) 1.31 gettext 'Linux Kernel log daemon' ;; 1.32 crond) 1.33 + # FIXME crontab 1.34 gettext 'Execute scheduled commands' ;; 1.35 dnsd) 1.36 + cfg="man|help|edit|options::-d" 1.37 gettext 'Small static DNS server daemon' ;; 1.38 tftpd) 1.39 + cfg="man|help|edit::/etc/inetd.conf" 1.40 gettext 'Transfer a file on tftp request' ;; 1.41 inetd) 1.42 gettext 'Listen for network connections and launch programs' ;; 1.43 zcip) 1.44 + cfg="man|help|edit:Script:/etc/zcip.script|options::eth0 /etc/zcip.script" 1.45 gettext 'Manage a ZeroConf IPv4 link-local address' ;; 1.46 *) 1.47 # Description from receipt 1.48 @@ -132,8 +142,10 @@ 1.49 [ -d "$LOCALSTATE/installed/${name%d}" ] && pkg=${name%d} 1.50 [ -d "$LOCALSTATE/installed/${name}-pam" ] && pkg=${name}-pam 1.51 if [ "$pkg" ]; then 1.52 + unset SHORT_DESC TAZPANEL_DAEMON 1.53 . $LOCALSTATE/installed/$pkg/receipt 1.54 echo -n "$SHORT_DESC" 1.55 + cfg="${TAZPANEL_DAEMON:-$cfg}" 1.56 else 1.57 echo -n "----" 1.58 fi ;; 1.59 @@ -148,6 +160,44 @@ 1.60 [ "$name" = "apache" ] && pid=$(cat /var/run/$name/httpd.pid) 1.61 # Pidof works for many daemons 1.62 [ "$pid" ] || pid=$(pidof $name) 1.63 + echo -n "<td>" 1.64 + if [ "$cfg" ]; then 1.65 + IFS="|" 1.66 + for i in $cfg ; do 1.67 + IFS=":" 1.68 + set -- $i 1.69 + case "$1" in 1.70 + edit) cat <<EOT 1.71 +<a href="index.cgi?file=${3:-/etc/$name.conf}&action=edit"> 1.72 +<img title="${2:-$name Configuration}" src="$IMAGES/edit.png" /></a> 1.73 +EOT 1.74 + ;; 1.75 + options) 1.76 + key=$(echo $name | tr [a-z] [A-Z])_OPTIONS 1.77 + cat <<EOT 1.78 +<a href="index.cgi?file=/etc/daemons.conf&action=setvar&var=$key&default=$3"> 1.79 +<img title="${2:-$key}" src="$IMAGES/tux.png" /></a> 1.80 +EOT 1.81 + ;; 1.82 + man) cat <<EOT 1.83 +<a href="index.cgi?exec=man ${3:-$name}"> 1.84 +<img title="${2:-$name Manual}" src="$IMAGES/text.png" /></a> 1.85 +EOT 1.86 + ;; 1.87 + help) cat <<EOT 1.88 +<a href="index.cgi?exec=$(which ${3:-$name}) --help"> 1.89 +<img title="${2:-$name Help}" src="$IMAGES/help.png" /></a> 1.90 +EOT 1.91 + ;; 1.92 + web) cat <<EOT 1.93 +<a href="${i#$1:$2:}"> 1.94 +<img title="${2:-$name Web} $(gettext "${i#$1:$2:}")" src="$IMAGES/browser.png" /></a> 1.95 +EOT 1.96 + ;; 1.97 + esac 1.98 + done 1.99 + fi 1.100 + echo "</td>" 1.101 if [ "$pid" ]; then 1.102 cat << EOT 1.103 <td><img src="$IMAGES/started.png" alt="Started" title="$(gettext 'Started')" /></td>
2.1 --- a/hardware.cgi Sun Jun 23 16:55:26 2013 +0300 2.2 +++ b/hardware.cgi Sat Jun 29 17:06:39 2013 +0200 2.3 @@ -12,27 +12,6 @@ 2.4 2.5 TITLE=$(gettext 'TazPanel - Hardware') 2.6 2.7 -ktoh() 2.8 -{ 2.9 - k=$1 2.10 - if [ $k -lt 1024 ]; then 2.11 - eval_gettext '${k}K' 2.12 - return 2.13 - fi 2.14 - k=$((($k+512)/1024)) 2.15 - if [ $k -lt 1024 ]; then 2.16 - eval_gettext '${k}M' 2.17 - return 2.18 - fi 2.19 - k=$((($k+512)/1024)) 2.20 - if [ $k -lt 1024 ]; then 2.21 - eval_gettext '${k}G' 2.22 - return 2.23 - fi 2.24 - k=$((($k+512)/1024)) 2.25 - eval_gettext '${k}T' 2.26 -} 2.27 - 2.28 lsusb_table() 2.29 { 2.30 cat << EOT 2.31 @@ -318,12 +297,14 @@ 2.32 if grep -q "^$fs " /proc/swaps; then 2.33 action="swapoff" 2.34 set -- $(grep "^$fs " /proc/swaps) 2.35 - size=$(ktoh $3) 2.36 - used=$(ktoh $4) 2.37 - av=$(ktoh $(($3-$4))) 2.38 + size=$(blk2h $(($3*2))) 2.39 + used=$(blk2h $(($4*2))) 2.40 + av=$(blk2h $((2*($3-$4)))) 2.41 pct=$(((100*$4)/$3))% 2.42 mp=swap 2.43 fi 2.44 + [ -z "$size" ] && 2.45 + size="$(blk2h $(cat /sys/block/${fs#/dev/}/size /sys/block/*/${fs#/dev/}/size))" 2.46 cat << EOT 2.47 <tr> 2.48 <td><input type="radio" name="device" value="$action $fs" />
3.1 --- a/index.cgi Sun Jun 23 16:55:26 2013 +0300 3.2 +++ b/index.cgi Sat Jun 29 17:06:39 2013 +0200 3.3 @@ -61,6 +61,17 @@ 3.4 # 3.5 3.6 case " $(GET) " in 3.7 + *\ exec\ *) 3.8 + exec="$(GET exec)" 3.9 + TITLE=$(gettext 'TazPanel - exec') 3.10 + xhtml_header 3.11 + cat << EOT 3.12 +<h2>$exec</h2> 3.13 +<pre> 3.14 +$($exec 2>&1 | htmlize) 3.15 +</pre> 3.16 +EOT 3.17 + ;; 3.18 *\ file\ *) 3.19 # 3.20 # Handle files 3.21 @@ -89,16 +100,32 @@ 3.22 EOT 3.23 #The space before textarea gets muddled when the form is submitted. 3.24 #It prevents anything else from getting messed up 3.25 + elif [ "$(GET action)" == "setvar" ]; then 3.26 + data="$(. $(GET file) ;eval echo \$$(GET var))" 3.27 + cat <<EOT 3.28 +<form method="post" action="$SCRIPT_NAME?file=$file"> 3.29 + <img src="$IMAGES/edit.png" /> 3.30 + <input type="submit" value="$(gettext 'Save')"> 3.31 + $(GET var) : 3.32 + <input type="hidden" name="var" value="$(GET var)"> 3.33 + <input type="text" name="content" value="${data:-$(GET default)}"> 3.34 +</form> 3.35 +EOT 3.36 elif [ "$(GET action)" == "diff" ]; then 3.37 echo '<pre id="diff">' 3.38 file_is_modified $file diff | syntax_highlighter diff 3.39 echo '</pre>' 3.40 else 3.41 R=$(echo -en '\r') 3.42 - [ -n "$(POST content)" ] && 3.43 - sed "s/$R /\n/g;s/$R%0//g" > $file <<EOT 3.44 + if [ -n "$(POST content)" ]; then 3.45 + if [ -n "$(POST var)" ]; then 3.46 + sed -i "s|^\\($(POST var)=\\).*|\1\"$(POST content)\"|" $file 3.47 + else 3.48 + sed "s/$R /\n/g;s/$R%0//g" > $file <<EOT 3.49 $(POST content) 3.50 EOT 3.51 + fi 3.52 + fi 3.53 cat <<EOT 3.54 <div id="actions"> 3.55 <a class="button" href='$SCRIPT_NAME?file=$file&action=edit'>
4.1 --- a/lib/libtazpanel Sun Jun 23 16:55:26 2013 +0300 4.2 +++ b/lib/libtazpanel Sat Jun 29 17:06:39 2013 +0200 4.3 @@ -256,3 +256,15 @@ 4.4 is_installed() { 4.5 [ -d "$INSTALLED/$1" ] 4.6 } 4.7 + 4.8 +blk2h() { 4.9 + echo $1 | awk '{ 4.10 + n = $0/2 4.11 + for (i = 1; n > 1024; i++) 4.12 + n /= 1024 4.13 + f = "%1.0f%c" 4.14 + if (n < 1000) 4.15 + f = "%1.1f%c" 4.16 + printf f,n,substr("KMGT", i, 1) 4.17 +}' 4.18 +}
5.1 --- a/styles/default/header.html Sun Jun 23 16:55:26 2013 +0300 5.2 +++ b/styles/default/header.html Sat Jun 29 17:06:39 2013 +0200 5.3 @@ -59,6 +59,7 @@ 5.4 src="/styles/default/images/wireless.png" />$(gettext 'Wireless')</a></li> 5.5 <li><a href="/index.cgi?file=/etc/network.conf"><img 5.6 src="/styles/default/images/edit.png" />$(gettext 'Config file')</a></li> 5.7 + $(for i in menu.d/network/* ; do [ -f $i ] && . $i menu $i ; done) 5.8 </ul> 5.9 </li> 5.10 <li><a href="/settings.cgi">$(gettext 'Settings')</a>