#!/usr/bin/bash
#
# Description: create LZM/XZM from RPM (& dependences)
# $1=RPM file or name program

cat /proc/config.gz | gunzip | grep -q SQUASHFS_XZ && MODULEFORMAT=xzm || MODULEFORMAT=lzm

[ "$1" = "" ] && exit -1

export PATH=/usr/lib/magicos/scripts:$PATH

. liblinuxlive

mod_br=/mnt/live/memory/tmp/wiz_fly_mods
root_br=/mnt/live/memory/tmp/wiz_fly_rootfs
mod_path=/mnt/live/memory/images

mount_br=$mod_br

rm -rf $mount_br $root_br
mkdir -p $mount_br $root_br

for a in `ls -d $mod_path/??-*`; do
    if [ $(cmdline_parameter unionfs) ];then
      mount_br="$mount_br:$a=ro"
    else
      mount_br="$mount_br:$a=rr"
    fi
done

if [ $(cmdline_parameter unionfs) ];then
    mount -t unionfs -o dirs=$mount_br wiz_fly $root_br
else
    mount -t aufs -o br:$mount_br wiz_fly $root_br
fi

mkdir -p $root_br/{dev,proc,sys}

for tm in {dev,proc,sys,var/lib/rpm}; do
    mount -o bind /$tm $root_br/$tm
done

mkdir -p $root_br/tmp
/usr/sbin/urpmi --root=$root_br $@

for tm in {var/lib/rpm,sys,proc,dev}; do
    while (grep -q $root_br/$tm /proc/mounts ) ; do
	umount $root_br/$tm
    done
done

rm -rf $root_br/{dev,proc,sys}

while (grep -q wiz_fly /proc/mounts ) ; do
    umount wiz_fly
done

#dir2lzm $mod_br/var/lib/rpm $1_rpmbase.$MODULEFORMAT

rm -rf $mod_br/var/lib/rpm
rm -rf $mod_br/tmp

dir2lzm $mod_br "$(basename $1).$MODULEFORMAT"

rm -rf $mod_br
rm -rf $root_br
