unset CDPATH
+TEMP=`getopt \
+ -o '' \
+ --long files:,nocompress,help \
+ -n febootstrap-to-initramfs -- "$@"`
+if [ $? != 0 ]; then
+ echo "febootstrap-to-initramfs: problem parsing the command line arguments"
+ exit 1
+fi
+eval set -- "$TEMP"
+
+compress=yes
+files=
+
+usage ()
+{
+ echo "Usage: febootstrap-to-initramfs [--files=filelist] [--nocompress] DIR"
+ echo "Please read febootstrap-to-initramfs(8) man page for more information."
+}
+
+while true; do
+ case "$1" in
+ --files)
+ files=$2
+ shift 2;;
+ --help)
+ usage
+ exit 0;;
+ --nocompress)
+ compress=no
+ shift;;
+ --)
+ shift
+ break;;
+ *)
+ echo "Internal error!"
+ exit 1;;
+ esac
+done
+
if [ $# -ne 1 ]; then
- echo "febootstrap-to-initramfs DIR > initrd.img"
+ usage
exit 1
fi
-cd "$1"
+cd "$1" > /dev/null
if [ ! -f fakeroot.log -a $(id -u) -ne 0 ]; then
echo "no fakeroot.log and not running as root"
exit 1
fi
+set -e
+
+(
if [ -f fakeroot.log ]; then
- fakeroot -i fakeroot.log \
- sh -c 'find -not -name fakeroot.log -a -print0 | cpio -o0c | gzip --best'
+ if [ -z "$files" ]; then
+ fakeroot -i fakeroot.log \
+ sh -c 'find -not -name fakeroot.log -a -print0 | cpio --quiet -o -0 -H newc'
+ else
+ fakeroot -i fakeroot.log \
+ sh -c 'cpio --quiet -o -H newc' < $files
+ fi
+else
+ if [ -z "$files" ]; then
+ find -not -name fakeroot.log -a -print0 | cpio --quiet -o -0 -H newc
+ else
+ cpio --quiet -o -H newc < $files
+ fi
+fi
+) | (
+if [ "$compress" = "yes" ]; then
+ gzip --best
else
- find -not -name fakeroot.log -a -print0 | cpio -o0c | gzip --best
+ cat
fi
+)