SVN: geninitrd/trunk/geninitrd

glen glen at pld-linux.org
Tue Oct 23 17:16:52 CEST 2007


Author: glen
Date: Tue Oct 23 17:16:51 2007
New Revision: 8841

Modified:
   geninitrd/trunk/geninitrd
Log:
- add inst_d() utility function to make dirs

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd	(original)
+++ geninitrd/trunk/geninitrd	Tue Oct 23 17:16:51 2007
@@ -264,6 +264,9 @@
 	done
 }
 
+# install a file to temporary mount image.
+# it will operate recursively (copying directories)
+# and will symlink destinations if source is symlink.
 inst() {
 	if [ "$#" != "2" ];then
 		die 'Usage: inst <file> $MNTIMAGE<destination>'
@@ -272,6 +275,16 @@
 	cp -HR "$1" "$MNTIMAGE$2"
 }
 
+inst_dir() {
+	if [ "$#" = "0" ];then
+		die 'Usage: inst_dir $MNTIMAGE<destination> $MNTIMAGE<destination>'
+	fi
+	for dir in "$@"; do
+		debug "mkdir $MNTIMAGE$dir"
+		install -d "$MNTIMAGE$dir"
+	done
+}
+
 find_modules_softraid() {
 	if [ -f /etc/mdadm.conf ]; then
 		debug "Finding RAID details using mdadm for rootdev=$1"
@@ -626,11 +639,11 @@
 	firmware_files="$3"
 
 	debug "Adding Firmwares ($firmware_files) to initrd for module $module"
-	mkdir -p $MNTIMAGE/proc
-	mkdir -p $MNTIMAGE/sys
+	inst_d /proc
+	inst_d /sys
 	# firmware not yet installed
 	if [ ! -f "$MNTIMAGE/lib/firmware/firmware.sh" ]; then
-		mkdir -p $MNTIMAGE/lib/firmware
+		inst_d /lib/firmware
 cat << 'EOF' >> "$MNTIMAGE/lib/firmware/firmware.sh"
 #!/bin/sh -e
 echo 1 > /sys$DEVPATH/loading
@@ -662,8 +675,8 @@
 	modules="$1"
 
 	for mod in $modules; do
-		MODULEDIR="`dirname "$mod"`"
-		mkdir -p "$MNTIMAGE/lib/modules/$kernel/$MODULEDIR"
+		MODULEDIR=$(dirname "$mod")
+		inst_d "/lib/modules/$kernel/$MODULEDIR"
 		cp -a "/lib/modules/$kernel/$mod" "$MNTIMAGE/lib/modules/$kernel/$mod"
 		gunzip "$MNTIMAGE/lib/modules/$kernel/$mod" 2> /dev/null
 	done
@@ -1028,14 +1041,11 @@
 fi
 
 mkdir -p "$MNTPOINT"
-
-
-mkdir -p "$MNTIMAGE"/{lib,bin,etc,dev,loopfs,var}
-
-
 # We don't need this directory, so let's save space
 rm -rf "$MNTPOINT"/lost+found
 
+inst_d /{lib,bin,etc,dev,loopfs,var}
+
 modules_install "$MODULES"
 
 # mknod'ing the devices instead of copying them works both with and
@@ -1043,8 +1053,7 @@
 mknod "$MNTIMAGE/dev/console" c 5 1
 mknod "$MNTIMAGE/dev/null" c 1 3
 mknod "$MNTIMAGE/dev/zero" c 1 5
-mkdir "$MNTIMAGE/dev/pts"
-mkdir "$MNTIMAGE/dev/shm"
+inst_d /dev/pts /dev/shm
 
 s="$RCFILE"
 ln -s /linuxrc $MNTIMAGE/init
@@ -1088,8 +1097,7 @@
 	if [ ! -x /usr/sbin/resume ]; then
 		die "/usr/sbin/resume is missing!"
 	fi
-	mkdir -p $MNTIMAGE/etc
-	mkdir -p $MNTIMAGE/dev
+	inst_d /etc /dev
 	resume_dev="$(awk '/^resume device =/ { print $4 } ' /etc/suspend.conf)"
 	inst /dev/snapshot /dev
 	inst $resume_dev /dev
@@ -1099,8 +1107,7 @@
 }
 
 initrd_gen_tuxonice() {
-	mkdir -p $MNTIMAGE/sys
-	mkdir -p $MNTIMAGE/proc
+	inst_d /sys /proc
 cat << 'EOF' >> "$s"
 mount -t proc none /proc
 mount -t sysfs none /sys
@@ -1146,10 +1153,7 @@
 
 initrd_gen_udev() {
 	debug "Setting up udev..."
-	mkdir -p $MNTIMAGE/sbin
-	mkdir -p $MNTIMAGE/proc
-	mkdir -p $MNTIMAGE/etc/udev
-	mkdir -p $MNTIMAGE/sys
+	inst_d /sbin /proc /etc/udev /sys
 
 	if [ ! -x /sbin/initrd-udevd ]; then
 		die "/sbin/initrd-udevd not present"
@@ -1192,8 +1196,7 @@
 	# always make /dev on tmpfs
 	initrd_gen_tmpfs_dev
 
-	mkdir -p "$MNTIMAGE/sbin"
-	mkdir -p "$MNTIMAGE/sys"
+	inst_d /sbin /sys
 	inst /sbin/dmraid-initrd /sbin/dmraid
 	cat <<-EOF >> "$s"
 	mount -t proc none /proc
@@ -1266,9 +1269,8 @@
 
 		for f in $cr_dev_list $cr_rootdev $dev_list_extra; do
 			# mkdir in case of devfs name
-			mkdir -p $MNTIMAGE/`dirname $f`
+			inst_d $(dirname $f)
 			[ -e "$MNTIMAGE/$f" ] && continue
-			debug echo "copying $f"
 			# this works fine with and without devfs
 			inst $f $f
 		done
@@ -1333,10 +1335,7 @@
 initrd_gen_lvm() {
 	debug "Adding LVM support to initrd"
 	inst /sbin/initrd-lvm /bin/lvm
-	mkdir -p $MNTIMAGE/etc
-	mkdir -p $MNTIMAGE/tmp
-	mkdir -p $MNTIMAGE/proc
-	mkdir -p $MNTIMAGE/newroot
+	inst_d /etc /tmp /proc /newroot
 
 	# always make /dev on tmpfs for LVM2
 	if [ "$LVMTOOLSVERSION" = "2" ]; then
@@ -1344,7 +1343,7 @@
 	fi
 
 	if ! is_yes "$tmpfs_dev"; then
-		mkdir -p $MNTIMAGE/dev/mapper
+		inst_d /dev/mapper
 		mknod $MNTIMAGE/dev/mapper/control c 10 63
 		for device in $PVDEVICES; do
 			# if LVM on RAID then device might be copied already in gen_softraid
@@ -1417,7 +1416,7 @@
 
 initrd_gen_procdata() {
 	debug "Adding rootfs finding based on root= option support."
-	mkdir -p $MNTIMAGE/proc
+	inst_d /proc
 cat << 'EOF' >> "$s"
 mount -t proc none /proc
 root="$(busybox awk ' /root=\/dev\// { gsub(/.*root=\/dev\//,NIL,$0); gsub(/ .*/,NIL,$0); print $0; } ' /proc/cmdline)"
@@ -1476,7 +1475,7 @@
 [ ! -e "$MNTIMAGE/$rootdev_add" ] && inst $rootdev_add /dev
 
 if [ "$INITRDFS" = "initramfs" ]; then
-	mkdir -p $MNTIMAGE/newroot
+	inst_d /newroot
 	[ ! -e "$MNTIMAGE/$rootdev" ] && inst $rootdev /dev
 	# Parsing root parameter
 	# We support passing root as hda3 /dev/hda3 0303 0x0303 and 303


More information about the pld-cvs-commit mailing list