summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Jones <rjones@trick.home.annexia.org>2009-06-15 14:57:41 +0100
committerRichard Jones <rjones@trick.home.annexia.org>2009-06-15 14:57:41 +0100
commit0a84f3915c7b827e65505c51bb2454b44adddbc9 (patch)
treed7eb852c90914044bc949ee45035ee3f02e3ca0b
parent9a05df180a5a250c86d3ef351f6334179b807028 (diff)
downloadfebootstrap-0a84f3915c7b827e65505c51bb2454b44adddbc9.tar.gz
febootstrap-0a84f3915c7b827e65505c51bb2454b44adddbc9.tar.xz
febootstrap-0a84f3915c7b827e65505c51bb2454b44adddbc9.zip
Add febootstrap-to-initramfs --files option, version 2.22.2
-rw-r--r--configure.ac2
-rw-r--r--febootstrap-to-initramfs.pod17
-rwxr-xr-xfebootstrap-to-initramfs.sh52
3 files changed, 65 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index cbed71b..e6b6df0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
dnl Written by Richard W.M. Jones <rjones@redhat.com>
-AC_INIT(febootstrap,2.1)
+AC_INIT(febootstrap,2.2)
AM_INIT_AUTOMAKE
AC_CHECK_PROG(PERLDOC,[perldoc],[perldoc],[no])
diff --git a/febootstrap-to-initramfs.pod b/febootstrap-to-initramfs.pod
index be5985c..951cc10 100644
--- a/febootstrap-to-initramfs.pod
+++ b/febootstrap-to-initramfs.pod
@@ -4,7 +4,7 @@ febootstrap-to-initramfs - Convert febootstrap root to initramfs (cpio) file.
=head1 SYNOPSIS
- febootstrap-to-initramfs DIR > initrd.img
+ febootstrap-to-initramfs [--files=filelist] DIR > initrd.img
=head1 DESCRIPTION
@@ -20,6 +20,21 @@ The permissions inside the initrd image are corrected automatically
(see the discussion of fakeroot logfile in the L<febootstrap(8)>
page). You do I<not> need to run this command as root.
+=head1 OPTIONS
+
+=over 4
+
+=item --files=filelist
+
+C<filelist> should be a file containing a list of the files to be
+added to the initramfs (one per line). Only those files are added and
+any others are ignored.
+
+When the C<--files> option is not given, all files in C<DIR> are added
+to the initramfs image.
+
+=back
+
=head1 /init
Normal initramfs images start by executing the program or script
diff --git a/febootstrap-to-initramfs.sh b/febootstrap-to-initramfs.sh
index 93d415a..83c661c 100755
--- a/febootstrap-to-initramfs.sh
+++ b/febootstrap-to-initramfs.sh
@@ -20,8 +20,43 @@
unset CDPATH
+TEMP=`getopt \
+ -o '' \
+ --long files:,help \
+ -n febootstrap-to-initramfs -- "$@"`
+if [ $? != 0 ]; then
+ echo "febootstrap-to-initramfs: problem parsing the command line arguments"
+ exit 1
+fi
+eval set -- "$TEMP"
+
+files=
+
+usage ()
+{
+ echo "Usage: febootstrap-to-initramfs [--files=filelist] 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;;
+ --)
+ shift
+ break;;
+ *)
+ echo "Internal error!"
+ exit 1;;
+ esac
+done
+
if [ $# -ne 1 ]; then
- echo "febootstrap-to-initramfs DIR > initrd.img"
+ usage
exit 1
fi
@@ -35,8 +70,17 @@ fi
set -e
if [ -f fakeroot.log ]; then
- fakeroot -i fakeroot.log \
- sh -c 'find -not -name fakeroot.log -a -print0 | cpio -o -0 -H newc | gzip --best'
+ if [ -z "$files" ]; then
+ fakeroot -i fakeroot.log \
+ sh -c 'find -not -name fakeroot.log -a -print0 | cpio -o -0 -H newc | gzip --best'
+ else
+ fakeroot -i fakeroot.log \
+ sh -c 'cpio -o -H newc | gzip --best' < $files
+ fi
else
- find -not -name fakeroot.log -a -print0 | cpio -o -0 -H newc | gzip --best
+ if [ -z "$files" ]; then
+ find -not -name fakeroot.log -a -print0 | cpio -o -0 -H newc | gzip --best
+ else
+ cpio -o -H newc < $files | gzip --best
+ fi
fi