Skip to content

Commit

Permalink
Add febootstrap-to-initramfs --files option, version 2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
Richard Jones committed Jun 15, 2009
1 parent 9a05df1 commit 0a84f39
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 6 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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])
Expand Down
17 changes: 16 additions & 1 deletion febootstrap-to-initramfs.pod
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down
52 changes: 48 additions & 4 deletions febootstrap-to-initramfs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

0 comments on commit 0a84f39

Please sign in to comment.