tazpanel diff hardware.cgi @ 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 | 4a8f56bb08cb |
children | c48b0c995b14 |
line diff
1.1 --- a/hardware.cgi Sat Jun 29 17:06:39 2013 +0200 1.2 +++ b/hardware.cgi Wed Jul 24 15:14:47 2013 +0000 1.3 @@ -12,6 +12,14 @@ 1.4 1.5 TITLE=$(gettext 'TazPanel - Hardware') 1.6 1.7 +# Call an optionnal module 1.8 +lib() 1.9 +{ 1.10 + module=lib/$1 1.11 + shift 1.12 + [ -s $module ] && . $module "$@" 1.13 +} 1.14 + 1.15 lsusb_table() 1.16 { 1.17 cat << EOT 1.18 @@ -267,6 +275,7 @@ 1.19 # Disk stats and management (mount, umount, check) 1.20 # 1.21 device=$(GET device) 1.22 + lib crypto $device 1.23 case "$device" in 1.24 *[\;\`\&\|\$]*) ;; 1.25 mount\ *) 1.26 @@ -280,11 +289,9 @@ 1.27 EOT 1.28 df_thead 1.29 echo '<tbody>' 1.30 - blkid | sort | while read dev misc 1.31 + for fs in $(blkid | sort | sed 's/:.*//') 1.32 do 1.33 - fs=${dev%:} 1.34 - set -- 1.35 - df | grep -q "^$fs " && set -- $(df -h | grep "^$fs ") 1.36 + set -- $(df -h | grep "^$fs ") 1.37 size=$2 1.38 used=$3 1.39 av=$4 1.40 @@ -305,10 +312,20 @@ 1.41 fi 1.42 [ -z "$size" ] && 1.43 size="$(blk2h $(cat /sys/block/${fs#/dev/}/size /sys/block/*/${fs#/dev/}/size))" 1.44 + img="harddisk.png" 1.45 + case "$(cat /sys/block/${fs#/dev/}/removable 2> /dev/null || 1.46 + cat /sys/block/${fs:5:3}/removable 2> /dev/null)" in 1.47 + 1) img="floppy.png" ;; 1.48 + esac 1.49 + case "$(cat /sys/block/${fs#/dev/}/ro 2> /dev/null || 1.50 + cat /sys/block/${fs:5:3}/ro 2> /dev/null)" in 1.51 + 1) img="tazlito.png" ;; 1.52 + esac 1.53 + [ -s ".$IMAGES/$img" ] || img="harddisk.png" 1.54 cat << EOT 1.55 <tr> 1.56 <td><input type="radio" name="device" value="$action $fs" /> 1.57 - <img src="$IMAGES/harddisk.png" />${fs#/dev/}</td> 1.58 + <img src="$IMAGES/$img" />${fs#/dev/}</td> 1.59 <td>$(blkid $fs | sed '/LABEL=/!d;s/.*LABEL="\([^"]*\).*/\1/')</td> 1.60 <td>$type</td> 1.61 <td>$size</td> 1.62 @@ -335,6 +352,7 @@ 1.63 cat << EOT 1.64 </tbody> 1.65 </table> 1.66 +$(lib crypto input) 1.67 <input type="submit" value="mount / umount" /> - 1.68 new mount point <input type=text" name="mountpoint" value="/media/usbdisk" /> 1.69 </form> 1.70 @@ -354,6 +372,57 @@ 1.71 <img src="$IMAGES/edit.png" />$(gettext 'Manual Edit')</a> 1.72 1.73 1.74 +<h3>$(gettext 'Loop devices')</h3> 1.75 +EOT 1.76 + # 1.77 + # Loop device management 1.78 + # 1.79 + device=$(GET loopdev) 1.80 + lib crypto $device 1.81 + case "$device" in 1.82 + /dev/loop*) 1.83 + set -- $(losetup | grep ^$device:) 1.84 + [ -n "$3" ] && losetup -d $device 1.85 + ro="" 1.86 + [ -n "$(GET readonly)" ] && ro="-r" 1.87 + file="$(GET backingfile)" 1.88 + [ -n "$file" ] && losetup -o $(GET offset) $ro $device $file 1.89 + esac 1.90 + cat << EOT 1.91 +<form method="get" action="$SCRIPT_NAME#loop"> 1.92 +<table id="loop" class="zebra outbox nowrap"> 1.93 +<thead> 1.94 +<tr><td>Device</td><td>Backing file</td><td>Access</td><td>Offset</td></tr> 1.95 +</thead> 1.96 +<tbody> 1.97 +EOT 1.98 +for loop in $(ls /dev/loop[0-9]*); do 1.99 + case "$(cat /sys/block/${loop#/dev/}/ro 2> /dev/null)" in 1.100 + 0) ro="read/write" ;; 1.101 + 1) ro="read only" ;; 1.102 + *) ro="" ;; 1.103 + esac 1.104 + set -- $(losetup | grep ^$loop:) $ro 1.105 + cat << EOT 1.106 +<tr> 1.107 + <td><input type="radio" name="loopdev" value="$loop" /> 1.108 + <img src="$IMAGES/harddisk.png" />${loop#/dev/}</td> 1.109 + <td>$3</td><td align="center">$4</td><td align="right">$2</td> 1.110 +</tr> 1.111 +EOT 1.112 +done 1.113 + cat << EOT 1.114 +</tbody> 1.115 +</table> 1.116 +$(lib crypto input) 1.117 +<input type="submit" value="Setup" /> - 1.118 +new backing file <input type="file" name="backingfile" /> - 1.119 +offset in bytes <input type="text" name="offset" size="8" value="0" /> - 1.120 +<input type="checkbox" name "readonly"> read-only 1.121 +</form> 1.122 +EOT 1.123 + 1.124 + cat << EOT 1.125 <h3>$(gettext 'System memory')</h3> 1.126 EOT 1.127