home: hub: mkinitfs

Download patch

ref: b6d43f17ceaade4bb4a392ddc2fcf032ddf138f8
parent: 87ca530bc864140e7b24b2d420c2f448c932ee8a
author: Natanael Copa <ncopa@alpinelinux.org>
date: Wed Apr 29 08:35:40 CDT 2009

support for -l to list all sourcefiles

--- 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,7 +38,7 @@
 	    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
@@ -38,8 +45,12 @@
 	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 @@
 
 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,6 +103,7 @@
 }
 
 initfs_cpio() {
+	[ -n "$list_sources" ] && return
 	echo "==> initramfs: creating $outfile" >&2
 	(cd "$tmpdir" && find . | cpio -o -H newc | gzip) > $outfile
 }
@@ -98,14 +110,16 @@
 
 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 @@
 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 @@
 . "$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