tazpanel rev 454
boot.cgi: add ISO mine
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Apr 11 17:30:12 2015 +0200 (2015-04-11) |
parents | 61395bbfe889 |
children | 1bc6783d2671 |
files | boot.cgi styles/default/header.html |
line diff
1.1 --- a/boot.cgi Sat Apr 11 08:01:42 2015 +0200 1.2 +++ b/boot.cgi Sat Apr 11 17:30:12 2015 +0200 1.3 @@ -36,7 +36,7 @@ 1.4 case " $(GET) " in 1.5 *\ syslog\ *) 1.6 logtype="$(GET syslog)" 1.7 - [ "$logtype" == "syslog" ] && logtype=messages 1.8 + [ "${logtype:-syslog}" == "syslog" ] && logtype=messages 1.9 xhtml_header 1.10 [ -w /etc/syslog.conf ] && cat <<EOT 1.11 <a href="index.cgi?file=/etc/syslog.conf&action=edit" data-img="conf"></a>syslog.conf 1.12 @@ -361,6 +361,99 @@ 1.13 ;; 1.14 1.15 1.16 + *\ iso\ *) 1.17 + xhtml_header 1.18 + iso=$(POST iso) 1.19 + workdir=$(POST workdir) 1.20 + action=$(POST action) 1.21 + [ "$action" ] || action=$(GET action) 1.22 + [ -d $workdir ] || workdir=$(dirname $workdir) 1.23 + [ -w $workdir -a "$workdir" ] || workdir=/tmp 1.24 + [ -s "$iso" ] || unset iso 1.25 + echo "<h2>$(_ 'ISO mine')</h2>" 1.26 + [ "$iso" ] || cat <<EOT 1.27 +<section> 1.28 +Invalid ISO image. 1.29 +</section> 1.30 +EOT 1.31 + if [ "$iso" -a "$action" -a "$action" != "nop" ]; then 1.32 + case "$action" in 1.33 + install*) dev=$(POST instdev) ;; 1.34 + *) dev=$(POST usbkeydev) ;; 1.35 + esac 1.36 + cat <<EOT 1.37 +<section> 1.38 +<pre> 1.39 +$(taziso $iso $action $dev) 1.40 +</pre> 1.41 +</section> 1.42 +EOT 1.43 + fi 1.44 + cat <<EOT 1.45 +<section> 1.46 +<form method="post" action="?iso"> 1.47 +EOT 1.48 + cat <<EOT 1.49 +<p> 1.50 +ISO image file full path (set /dev/cdrom for a physical CD-ROM)<br /> 1.51 +<input type="text" name="iso" value="$iso" size="50" /> 1.52 +</p> 1.53 +<p> 1.54 +Working directory 1.55 +<input type="text" name="workdir" value="$workdir" /> 1.56 +</p> 1.57 +<p> 1.58 +Windows partition 1.59 +<select name="instdev"> 1.60 + <option value="/dev/null">Choose a partition</option> 1.61 +EOT 1.62 + blkid | grep -iE "(msdos|vfat|ntfs)" | \ 1.63 + sed 's|^/dev/\(.*\):.*LABEL="\([^"]*\).*|\1 "\2"|' | \ 1.64 + while read dev label; do 1.65 + echo -n "<option value=\"/dev/$dev\">/dev/$dev $label " 1.66 + echo "$(($(cat /sys/block/${dev:0:3}/$dev/size)/2048))MB</option>" 1.67 + done 1.68 + cat <<EOT 1.69 +</select> 1.70 +</p> 1.71 +<p> 1.72 +USB key device 1.73 +<select name="usbkeydev"> 1.74 + <option value="/dev/null">Choose an USB key</option> 1.75 +EOT 1.76 + grep -l 1 /sys/block/*/removable | \ 1.77 + sed 's|/sys/block/\(.*\)/removable|\1|' | while read dev; do 1.78 + grep -qs 1 /sys/block/$DEV/ro && continue 1.79 + echo -n "<option value=\"/dev/$dev\">/dev/$dev " 1.80 + echo "$(($(cat /sys/block/$dev/size)/2048))MB $(cat \ 1.81 + /sys/block/$i/device/model 2> /dev/null)</option>" 1.82 + done 1.83 + cat <<EOT 1.84 +</select> 1.85 +</p> 1.86 +<footer> 1.87 +EOT 1.88 + if [ "$iso" ]; then 1.89 + cat <<EOT 1.90 +<select name="action"> 1.91 + <option value="nop">Choose an action</option> 1.92 +$(taziso $iso list | sed -e \ 1.93 +'s/"\(.*\)"[\t ]*"\(.*\)"/<option value="\1\">\2<\/option>/' -e \ 1.94 +"s|value=\"$action\"|& selected|") 1.95 +</select> 1.96 +EOT 1.97 + elif [ "$action" ]; then 1.98 + cat <<EOT 1.99 +<input type="hidden" name="action" value="$action" /> 1.100 +EOT 1.101 + fi 1.102 + cat <<EOT 1.103 + <button data-icon="cd" name="mine">Mine</button> 1.104 +</footer> 1.105 +</form> 1.106 +</section> 1.107 +EOT 1.108 + ;; 1.109 *) 1.110 # 1.111 # Default content with summary 1.112 @@ -377,6 +470,9 @@ 1.113 <button name="syslog" data-icon="logs" >$(_ 'System logs')</button> 1.114 <button name="daemons" data-icon="daemons" data-root>$(_ 'Manage daemons')</button> 1.115 EOT 1.116 + [ "$REMOTE_USER" == "root" -a -x /usr/bin/taziso ] && cat <<EOT 1.117 + <button name="iso" data-icon="cd" >$(_ 'ISO mine')</button> 1.118 +EOT 1.119 [ -w /boot/grub/menu.lst ] && cat <<EOT 1.120 <button name="grub" data-icon="grub" >$(_ 'Boot loader')</button> 1.121 EOT
2.1 --- a/styles/default/header.html Sat Apr 11 08:01:42 2015 +0200 2.2 +++ b/styles/default/header.html Sat Apr 11 17:30:12 2015 +0200 2.3 @@ -59,6 +59,8 @@ 2.4 </li> 2.5 <li><a data-icon="logs" href="boot.cgi?syslog">$(_ 'System logs')</a> 2.6 <li><a data-icon="daemons" href="boot.cgi?daemons" data-root>$(_ 'Manage daemons')</a></li> 2.7 + $([ "$REMOTE_USER" == "root" -a -x /usr/bin/taziso ] && 2.8 + echo "<li><a data-icon=\"cd\" href=\"boot.cgi?iso\">$(_ 'ISO mine')</a>") 2.9 $(for i in menu.d/boot/* ; do [ -f $i ] && sh $i menu $i ; done) 2.10 </menu> 2.11 </li>