aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmkinitfs31
1 files changed, 24 insertions, 7 deletions
diff --git a/mkinitfs b/mkinitfs
index 67b97f2..5fd116d 100755
--- a/mkinitfs
+++ b/mkinitfs
@@ -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