tazpanel rev 78
live.cgi: add meta tool
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Apr 12 22:26:40 2011 +0200 (2011-04-12) |
parents | 5db1f3648ed8 |
children | da62992292be |
files | live.cgi |
line diff
1.1 --- a/live.cgi Tue Apr 12 21:22:41 2011 +0200 1.2 +++ b/live.cgi Tue Apr 12 22:26:40 2011 +0200 1.3 @@ -5,6 +5,17 @@ 1.4 # Copyright (C) 2011 SliTaz GNU/Linux - GNU gpl v3 1.5 # 1.6 1.7 +if [ "$1" == "call" ]; then 1.8 + case "$2" in 1.9 + merge_cleanup) 1.10 + mv -f $3.merged $3 1.11 + for i in $4/*; do 1.12 + umount -d $i 1.13 + done 1.14 + rm -rf $4 1.15 + exit ;; 1.16 + esac 1.17 +fi 1.18 1.19 . /usr/bin/httpd_helper.sh 1.20 1.21 @@ -23,6 +34,29 @@ 1.22 1.23 TITLE="- Live" 1.24 1.25 +# Build arguments to create a meta iso using 'tazlito merge' command 1.26 +merge_args() 1.27 +{ 1.28 + tmp=$1 1.29 + first=true 1.30 + i=1 1.31 + while [ -n "$(GET input$i)" ]; do 1.32 + echo "$(stat -c "%s" $(GET input$i)) $(GET input$i) $(GET ram$i)" 1.33 + $((i++)) 1.34 + done | sort -nr | while read size file ram; do 1.35 + if $first; then 1.36 + cp $file $(GET metaoutput) 1.37 + echo -n "$ram $(GET metaoutput) " 1.38 + first=false 1.39 + continue 1.40 + fi 1.41 + dir=$tmp/$(basename $file) 1.42 + mkdir $dir 1.43 + mount -o loop,ro $file $dir 1.44 + echo -n "$ram $dir/boot/rootfs.gz " 1.45 + done 1.46 +} 1.47 + 1.48 # 1.49 # Commands executed in Xterm first 1.50 # 1.51 @@ -43,6 +77,14 @@ 1.52 $TERMINAL $TERM_OPTS \ 1.53 -T "build loram iso" \ 1.54 -e "tazlito build-loram $(GET input) $(GET loramoutput) $(GET type)" & ;; 1.55 + *\ meta\ *) 1.56 + tmp=/tmp/$(basename $0).$$ 1.57 + cleanup="sh $0 call merge_cleanup $(GET output) $tmp" 1.58 + $TERMINAL $TERM_OPTS \ 1.59 + -T "build meta iso" \ 1.60 + -e "tazlito merge $(merge_args $tmp); \ 1.61 + gettext \"ENTER to quit\"; read i; \ 1.62 + $cleanup" & ;; 1.63 esac 1.64 1.65 # 1.66 @@ -139,6 +181,49 @@ 1.67 <input type="submit" value="`gettext "Convert ISO to loram"`" /> 1.68 </form> 1.69 1.70 +<a name="meta"></a> 1.71 +<h4>`gettext "Buld a meta ISO"`</h4> 1.72 +<p> 1.73 + `gettext "Combines several ISO flavors like nested Russian dolls. 1.74 + The amount of RAM available at startup will be used to select the 1.75 + utmost one."` 1.76 +</p> 1.77 +<form method="get" action="$SCRIPT_NAME#meta"> 1.78 + <table> 1.79 +EOT 1.80 + i="" 1.81 + while [ -n "$(GET addmeta)" ]; do 1.82 + [ -n "$(GET input$i)" ] || break 1.83 + j=$(($i + 1)) 1.84 + cat << EOT 1.85 + <tr> 1.86 + <td>`gettext "ISO number"` $j: $(GET input$i) 1.87 + <input type="hidden" name="input$j" value="$(GET input$i)" /></td> 1.88 + <td>`gettext "minimum RAM"`: $(GET ram$i) 1.89 + <input type="hidden" name="ram$j" value="$(GET ram$i)" /></td> 1.90 + </tr> 1.91 +EOT 1.92 + i=$j 1.93 + done 1.94 + metaoutput="$(GET metaoutput)" 1.95 + [ -n "$metaoutput" ] || metaoutput="/root/meta.iso" 1.96 + 1.97 + cat << EOT 1.98 + <tr> 1.99 + <td>`gettext "ISO to add"` 1.100 + <input type="text" name="input" value="/root/" /></td> 1.101 + <td>`gettext "minimum RAM"` 1.102 + <input type="text" name="ram" value="128M" /> 1.103 + <input type="submit" name="addmeta" value="`gettext "Add to the list"`" /></td> 1.104 + </tr> 1.105 + <tr> 1.106 + <td>`gettext "ISO to create"` 1.107 + <input type="text" name="metaoutput" value="$metaoutput" /></td> 1.108 + </tr> 1.109 + </table> 1.110 + <input type="submit" name="meta" value="`gettext "Build a meta ISO"`" /> 1.111 +</form> 1.112 + 1.113 EOT 1.114 ;; 1.115 esac