tazpanel rev 373

hardware.cgi: add loop support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Wed Jul 24 15:14:47 2013 +0000 (2013-07-24)
parents d1f4f991fb1d
children 7f8ca464ff96
files boot.cgi hardware.cgi lib/libtazpanel styles/default/style.css
line diff
     1.1 --- a/boot.cgi	Tue Jul 23 03:22:09 2013 +0300
     1.2 +++ b/boot.cgi	Wed Jul 24 15:14:47 2013 +0000
     1.3 @@ -106,8 +106,9 @@
     1.4  			echo -n "<td>"
     1.5  			cfg=""
     1.6  			grep -qi "^${name}_OPTIONS=" /etc/daemons.conf && cfg="options|$cfg"
     1.7 -			[ -s /etc/$name.conf ] && cfg="edit|$cfg"
     1.8 -			[ -s /etc/$name/$name.conf ] && cfg="edit::/etc/$name/$name.conf|$cfg"
     1.9 +			for i in /etc/slitaz /etc /etc/$name ; do
    1.10 +				[ -s $i/$name.conf ] && cfg="edit::$i/$name.conf|$cfg"
    1.11 +			done
    1.12  			[ -n "$(which $name)" ] && cfg="man|help|$cfg"
    1.13  			case "$name" in
    1.14  				firewall)
     2.1 --- a/hardware.cgi	Tue Jul 23 03:22:09 2013 +0300
     2.2 +++ b/hardware.cgi	Wed Jul 24 15:14:47 2013 +0000
     2.3 @@ -12,6 +12,14 @@
     2.4  
     2.5  TITLE=$(gettext 'TazPanel - Hardware')
     2.6  
     2.7 +# Call an optionnal module
     2.8 +lib()
     2.9 +{
    2.10 +	module=lib/$1
    2.11 +	shift
    2.12 +	[ -s $module ] && . $module "$@"
    2.13 +}
    2.14 +
    2.15  lsusb_table()
    2.16  {
    2.17  	cat << EOT
    2.18 @@ -267,6 +275,7 @@
    2.19  		# Disk stats and management (mount, umount, check)
    2.20  		#
    2.21  		device=$(GET device)
    2.22 +		lib crypto $device
    2.23  		case "$device" in
    2.24  		*[\;\`\&\|\$]*) ;;
    2.25  		mount\ *)
    2.26 @@ -280,11 +289,9 @@
    2.27  EOT
    2.28  		df_thead
    2.29  		echo '<tbody>'
    2.30 -		blkid | sort | while read dev misc
    2.31 +		for fs in $(blkid | sort | sed 's/:.*//')
    2.32  		do
    2.33 -			fs=${dev%:}
    2.34 -			set --
    2.35 -			df | grep -q "^$fs " && set -- $(df -h | grep "^$fs ")
    2.36 +			set -- $(df -h | grep "^$fs ")
    2.37  			size=$2
    2.38  			used=$3
    2.39  			av=$4
    2.40 @@ -305,10 +312,20 @@
    2.41  			fi
    2.42  			[ -z "$size" ] &&
    2.43  			size="$(blk2h $(cat /sys/block/${fs#/dev/}/size /sys/block/*/${fs#/dev/}/size))"
    2.44 +			img="harddisk.png"
    2.45 +			case "$(cat /sys/block/${fs#/dev/}/removable 2> /dev/null ||
    2.46 +				cat /sys/block/${fs:5:3}/removable 2> /dev/null)" in
    2.47 +			1) img="floppy.png" ;; 
    2.48 +			esac
    2.49 +			case "$(cat /sys/block/${fs#/dev/}/ro 2> /dev/null ||
    2.50 +				cat /sys/block/${fs:5:3}/ro 2> /dev/null)" in
    2.51 +			1) img="tazlito.png" ;; 
    2.52 +			esac
    2.53 +			[ -s ".$IMAGES/$img" ] || img="harddisk.png"
    2.54  			cat << EOT
    2.55  <tr>
    2.56  	<td><input type="radio" name="device" value="$action $fs" />
    2.57 -	    <img src="$IMAGES/harddisk.png" />${fs#/dev/}</td>
    2.58 +	    <img src="$IMAGES/$img" />${fs#/dev/}</td>
    2.59  	<td>$(blkid $fs | sed '/LABEL=/!d;s/.*LABEL="\([^"]*\).*/\1/')</td>
    2.60  	<td>$type</td>
    2.61  	<td>$size</td>
    2.62 @@ -335,6 +352,7 @@
    2.63  		cat << EOT
    2.64  </tbody>
    2.65  </table>
    2.66 +$(lib crypto input)
    2.67  <input type="submit" value="mount / umount" /> -
    2.68  new mount point <input type=text" name="mountpoint" value="/media/usbdisk" />
    2.69  </form>
    2.70 @@ -354,6 +372,57 @@
    2.71  	<img src="$IMAGES/edit.png" />$(gettext 'Manual Edit')</a>
    2.72  
    2.73  
    2.74 +<h3>$(gettext 'Loop devices')</h3>
    2.75 +EOT
    2.76 +		#
    2.77 +		# Loop device management
    2.78 +		#
    2.79 +		device=$(GET loopdev)
    2.80 +		lib crypto $device
    2.81 +		case "$device" in
    2.82 +		/dev/loop*)
    2.83 +			set -- $(losetup | grep ^$device:)
    2.84 +			[ -n "$3" ] && losetup -d $device
    2.85 +			ro=""
    2.86 +			[ -n "$(GET readonly)" ] && ro="-r"
    2.87 +			file="$(GET backingfile)"
    2.88 +			[ -n "$file" ] && losetup -o $(GET offset) $ro $device $file
    2.89 +		esac
    2.90 +		cat << EOT
    2.91 +<form method="get" action="$SCRIPT_NAME#loop">
    2.92 +<table id="loop" class="zebra outbox nowrap">
    2.93 +<thead>
    2.94 +<tr><td>Device</td><td>Backing file</td><td>Access</td><td>Offset</td></tr>
    2.95 +</thead>
    2.96 +<tbody>
    2.97 +EOT
    2.98 +for loop in $(ls /dev/loop[0-9]*); do
    2.99 +	case "$(cat /sys/block/${loop#/dev/}/ro 2> /dev/null)" in
   2.100 +	0) ro="read/write" ;;
   2.101 +	1) ro="read&nbsp;only" ;;
   2.102 +	*) ro="" ;;
   2.103 +	esac
   2.104 +	set -- $(losetup | grep ^$loop:) $ro
   2.105 +	cat << EOT
   2.106 +<tr>
   2.107 +	<td><input type="radio" name="loopdev" value="$loop" />
   2.108 +	    <img src="$IMAGES/harddisk.png" />${loop#/dev/}</td>
   2.109 +	<td>$3</td><td align="center">$4</td><td align="right">$2</td>
   2.110 +</tr>
   2.111 +EOT
   2.112 +done
   2.113 +		cat << EOT
   2.114 +</tbody>
   2.115 +</table>
   2.116 +$(lib crypto input)
   2.117 +<input type="submit" value="Setup" /> -
   2.118 +new backing file <input type="file" name="backingfile" /> -
   2.119 +offset in bytes <input type="text" name="offset" size="8" value="0" /> -
   2.120 +<input type="checkbox" name "readonly"> read-only
   2.121 +</form>
   2.122 +EOT
   2.123 +
   2.124 +		cat << EOT
   2.125  <h3>$(gettext 'System memory')</h3>
   2.126  EOT
   2.127  
     3.1 --- a/lib/libtazpanel	Tue Jul 23 03:22:09 2013 +0300
     3.2 +++ b/lib/libtazpanel	Wed Jul 24 15:14:47 2013 +0000
     3.3 @@ -259,7 +259,7 @@
     3.4  	for (i = 1; n > 1024; i++)
     3.5  		n /= 1024
     3.6  	f = "%1.0f%c"
     3.7 -	if (n < 1000)
     3.8 +	if (n < 100)
     3.9  		f = "%1.1f%c"
    3.10  	printf f,n,substr("KMGT", i, 1)
    3.11  }'
     4.1 --- a/styles/default/style.css	Tue Jul 23 03:22:09 2013 +0300
     4.2 +++ b/styles/default/style.css	Wed Jul 24 15:14:47 2013 +0000
     4.3 @@ -107,6 +107,7 @@
     4.4  	position: absolute;
     4.5  	left: 180px;
     4.6  	top: 0px;
     4.7 +	z-index:1;
     4.8  }
     4.9  #menu li:hover li:hover ul {
    4.10  	display: block;