# HG changeset patch # User Pascal Bellard # Date 1268842174 -3600 # Node ID 89bc51f3dfe9ca6a878b81c70a146f43193e08f8 # Parent 72c4b9fd199708f63c35daaf3c87469ea4e12b2b tazlitobox: add Meta tab (for merge) diff -r 72c4b9fd1997 -r 89bc51f3dfe9 tazlitobox --- a/tazlitobox Mon Mar 08 18:11:12 2010 +0100 +++ b/tazlitobox Wed Mar 17 17:09:34 2010 +0100 @@ -74,6 +74,12 @@ -e "tazlito clean-distro && sleep 1" } +show_flavors() +{ + tazlito list-flavors | \ + awk '{if (show && $1 != "") print $1} /^==/ {show=1}' +} + get_flavor_action() { cd /home/slitaz @@ -105,6 +111,71 @@ editor $DISTRO_SCRIPT } +merge_input() +{ + set -- $(cat /tmp/tazlito.mergelist 2> /dev/null) + while [ -n "$2" ]; do + echo "$2 | $1" + shift 2 + done +} + +merge_add() +{ + echo -n " $ISO_IN $ISO_RAM" >> /tmp/tazlito.mergelist +} + +merge_del() +{ + set -- $(cat /tmp/tazlito.mergelist) + ARGS="" + while [ -n "$2" ]; do + case "$1" in + $ISO_ITEM) ;; + *) [ -n "$ARGS" ] && ARGS="$ARGS " + ARGS="$ARGS$1 $2" ;; + esac + shift 2 + done + echo -n "$ARGS" > /tmp/tazlito.mergelist +} + +merge_args() +{ + first=true + while [ -n "$2" ]; do + echo "$(stat -c "%s" $1) $1 $2" + shift 2 + done | sort -nr | while read size file ram; do + if $first; then + cp $file $ISO_OUT + echo -n "$ram $ISO_OUT " + first=false + continue + fi + dir=$tmp/$(basename $file) + mkdir $dir + mount -o loop,ro $file $dir + echo -n "$ram $dir/boot/rootfs.gz " + done +} + +merge_action() +{ + set -- $(cat /tmp/tazlito.mergelist 2> /dev/null) + rm -f /tmp/tazlito.mergelist + tmp=/tmp/tazlitobox$$ + mkdir $tmp + [ -n "$4" ] || return + xterm -geometry 80x16 -title "build meta iso image $ISO_OUT" \ + -e "script -c 'tazlito merge $(merge_args $@)' && echo -e \"----\nENTER to continue...\" && read close" + mv $ISO_OUT.merged $ISO_OUT + for i in $tmp/*; do + umount -d $i + done + rm -rf $tmp +} + # Boxes export HELP=' @@ -194,7 +265,7 @@ - + @@ -210,15 +281,14 @@ - + - - gzip + COMPRESSION - - - - + gzip + lzma + none + + + + + + + + 128M + ISO_RAM + + + + + + + + + meta.iso + ISO_OUT + + + + + + +