--- spt 2007-03-14 03:35:43 +0300 +++ my-spt 2007-04-05 13:38:20 +0400 @@ -37,8 +37,10 @@ create_image() { Verbose "Creating image for \`$IDENT'." + [ -n "$IMAGE_TYPE" ] || IMAGE_TYPE="$image_type" + Verbose "image type: \`$IMAGE_TYPE'." - case "$image_type" in + case "$IMAGE_TYPE" in squashfs) init_chroot_progs "squashfsprogs" cp -a "$tmpdir/.archive.tar" "$chroot/tmp/" @@ -57,6 +59,20 @@ mkiso= cat "$tmpdir/.archive.tar" | gzip -f9 > "$workdir/$OUT.tar.gz" ;; + cpio) + init_chroot_progs "cpio findutils" + cp -a "$tmpdir/.archive.tar" "$chroot/tmp/" +cat >"$tmpdir/script" <<'__EOF__' +mkdir -p /tmp/.archive +tar -C /tmp/.archive -xf /tmp/.archive.tar +cd /tmp/.archive +find . | cpio -o -H newc > /.image +__EOF__ + chroot_exec "$tmpdir/script" + mv -f -- "$chroot/.image" "$outdir/$OUT" + gzip "$outdir/$OUT" + mv "$outdir/$OUT.gz" "$outdir/$OUT" + ;; *) Fatal 'Unsupported image type.' ;; @@ -115,7 +132,7 @@ if [ -n "$HOOKPKGS" ]; then Verbose "Installation packages for hook" - hsh-install "$workdir" $verbose $quiet $excludedocs ${number:+--number="$number"} $HOOKPKGS + hsh-install "$workdir" $verbose $quiet $excludedocs ${number:+--number="$number"} --save-fakeroot $HOOKPKGS fi packages="$profile_dir/$IDENT/packages" @@ -151,12 +168,12 @@ runto_components() { local cmd comp - local IDENT VENDOR COPYONLY INSTALLDIR NOIMAGE EXTRAOPTS FILES OUT + local IDENT VENDOR COPYONLY INSTALLDIR NOIMAGE EXTRAOPTS FILES OUT IMAGE_TYPE cmd="$1" && shift for comp in $COMPONENTS; do - IDENT="packages" VENDOR="ALTLinux" COPYONLY= INSTALLDIR= NOIMAGE= EXTRAOPTS= FILES= OUT= + IDENT="packages" VENDOR="ALTLinux" COPYONLY= INSTALLDIR= NOIMAGE= EXTRAOPTS= FILES= OUT= IMAGE_TYPE= . "$profile_dir/$comp/config" || Fatal "File \`$profile_dir/$comp/config' not found."