# HG changeset patch # User Pascal Bellard # Date 1302640000 -7200 # Node ID 73c42017a5a24ad7bf0b15306df6ec6a410fe539 # Parent 5db1f3648ed892353645d6df9dd13f5df7cf5e59 live.cgi: add meta tool diff -r 5db1f3648ed8 -r 73c42017a5a2 live.cgi --- a/live.cgi Tue Apr 12 21:22:41 2011 +0200 +++ b/live.cgi Tue Apr 12 22:26:40 2011 +0200 @@ -5,6 +5,17 @@ # Copyright (C) 2011 SliTaz GNU/Linux - GNU gpl v3 # +if [ "$1" == "call" ]; then + case "$2" in + merge_cleanup) + mv -f $3.merged $3 + for i in $4/*; do + umount -d $i + done + rm -rf $4 + exit ;; + esac +fi . /usr/bin/httpd_helper.sh @@ -23,6 +34,29 @@ TITLE="- Live" +# Build arguments to create a meta iso using 'tazlito merge' command +merge_args() +{ + tmp=$1 + first=true + i=1 + while [ -n "$(GET input$i)" ]; do + echo "$(stat -c "%s" $(GET input$i)) $(GET input$i) $(GET ram$i)" + $((i++)) + done | sort -nr | while read size file ram; do + if $first; then + cp $file $(GET metaoutput) + echo -n "$ram $(GET metaoutput) " + first=false + continue + fi + dir=$tmp/$(basename $file) + mkdir $dir + mount -o loop,ro $file $dir + echo -n "$ram $dir/boot/rootfs.gz " + done +} + # # Commands executed in Xterm first # @@ -43,6 +77,14 @@ $TERMINAL $TERM_OPTS \ -T "build loram iso" \ -e "tazlito build-loram $(GET input) $(GET loramoutput) $(GET type)" & ;; + *\ meta\ *) + tmp=/tmp/$(basename $0).$$ + cleanup="sh $0 call merge_cleanup $(GET output) $tmp" + $TERMINAL $TERM_OPTS \ + -T "build meta iso" \ + -e "tazlito merge $(merge_args $tmp); \ + gettext \"ENTER to quit\"; read i; \ + $cleanup" & ;; esac # @@ -139,6 +181,49 @@ + +

`gettext "Buld a meta ISO"`

+

+ `gettext "Combines several ISO flavors like nested Russian dolls. + The amount of RAM available at startup will be used to select the + utmost one."` +

+
+ +EOT + i="" + while [ -n "$(GET addmeta)" ]; do + [ -n "$(GET input$i)" ] || break + j=$(($i + 1)) + cat << EOT + + + + +EOT + i=$j + done + metaoutput="$(GET metaoutput)" + [ -n "$metaoutput" ] || metaoutput="/root/meta.iso" + + cat << EOT + + + + + + + +
`gettext "ISO number"` $j: $(GET input$i) + `gettext "minimum RAM"`: $(GET ram$i) +
`gettext "ISO to add"` + `gettext "minimum RAM"` + +
`gettext "ISO to create"` +
+ +
+ EOT ;; esac