diff options
-rwxr-xr-x | mkinitfs | 31 |
1 files changed, 24 insertions, 7 deletions
@@ -2,6 +2,13 @@ _cp() { local i + if [ -n "$list_sources" ]; then + for i in "$@"; do + echo $i + done + return + fi + for i in "$@"; do local dest="$tmpdir"/${i%/*} mkdir -p "$dest" @@ -31,15 +38,19 @@ initfs_base() { media/floppy media/usb newroot; do dirs="$dirs $tmpdir/$i" done - mkdir -p $dirs + [ -z "$list_sources" ] && mkdir -p $dirs for file in $(feature_files "$filelists_dir"); do _cp $file done # copy init - cd $startdir - install -m755 "$init" "$tmpdir"/init + if [ -z "$list_sources" ]; then + cd $startdir + install -m755 "$init" "$tmpdir"/init + else + echo "$init" + fi } find_kmod_deps() { @@ -75,7 +86,7 @@ END { initfs_kmods() { local glob= file= files= dirs= - rm -rf "$tmpdir"/lib/modules + [ -z "$list_soruces" ] && rm -rf "$tmpdir"/lib/modules cd "$kerneldir" || return 1 echo "==> initramfs: copying kernel $kernel modules" >&2 files=$( @@ -92,20 +103,23 @@ initfs_kmods() { } initfs_cpio() { + [ -n "$list_sources" ] && return echo "==> initramfs: creating $outfile" >&2 (cd "$tmpdir" && find . | cpio -o -H newc | gzip) > $outfile } usage() { cat <<EOF -usage: mkinitfs [-hkL] [-b basedir] [-c configfile] [-i initfile ] - [-o outfile] [-t tempdir] [kernelversion]" +usage: mkinitfs [-hkLl] [-b basedir] [-c configfile] [-f features] + [-i initfile ] [-o outfile] [-t tempdir] [kernelversion]" options: -b prefix files and kernel modules with basedir -c use configfile instead of $config + -f use specified features -h print this help -i use initfile as init instead of $init -k keep tempdir + -l only list files that would have been used -L list available features -o set another outfile -t use tempdir when creating initramfs image @@ -120,14 +134,16 @@ startdir=$PWD config=/etc/mkinitfs/mkinitfs.conf init=/usr/share/mkinitfs/initramfs-init -while getopts "b:c:hi:kLo:t:" opt; do +while getopts "b:c:hi:kLlo:t:" opt; do case "$opt" in b) basedir="$OPTARG";; c) config="$OPTARG";; + f) myfeatures="$OPTARG";; h) usage;; i) init=$OPTARG;; k) keeptmp=1;; L) list_features=1;; + l) list_sources=1;; o) outfile="$OPTARG";; t) tmpdir="$OPTARG";; *) usage;; @@ -138,6 +154,7 @@ shift $(( $OPTIND - 1 )) . "$config" filelists_dir=${filelists_dir:-"/etc/mkinitfs/files.d"} modulelists_dir=${modules_dir:-"/etc/mkinitfs/modules.d"} +[ -n "$myfeatures" ] && features="$myfeatures" if [ -n "$list_features" ]; then for i in $filelists_dir $modulelists_dir; do |