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