home: hub: mkinitfs

Download patch

ref: 8cb0e815133c1000a84f59939620ed8a32696e2d
parent: 9e98184edd8ded24006cf028f8bf72a40bbd7ee6
author: Natanael Copa <ncopa@alpinelinux.org>
date: Mon Mar 24 05:05:15 CDT 2014

mkinitfs: make sure basedir is always set

and make it work with relative paths too

--- a/mkinitfs.in
+++ b/mkinitfs.in
@@ -41,7 +41,7 @@
 	mkdir -p $dirs
 
 	local oldpwd="$PWD"
-	cd "${basedir:-/}"
+	cd "${basedir}"
 	for file in $(feature_files files); do
 		echo "${file#/}"
 	done | cpio -pdm "$tmpdir"
@@ -56,7 +56,7 @@
 }
 
 find_kmod_deps() {
-	awk -v prepend="/lib/modules/$kernel/" -v modulesdep="$basedir/lib/modules/$kernel/modules.dep" '
+	awk -v prepend="/lib/modules/$kernel/" -v modulesdep="${basedir}lib/modules/$kernel/modules.dep" '
 function recursedeps(k,		j, dep) {
 	if (k in visited)
 		return;
@@ -108,11 +108,11 @@
 	rm -rf "$tmpdir"/lib/modules
 	# make sure we have modules.dep
 	if ! [ -f "$kerneldir"/modules.dep ]; then
-		depmod -b "${basedir:-/}" $kernel
+		depmod -b "${basedir}" $kernel
 	fi
 	files=$(find_kmods)
 	local oldpwd="$PWD"
-	cd ${basedir:-/}
+	cd "${basedir}"
 	for file in $files; do
 		echo "${file#/}"
 	done | cpio -pdm "$tmpdir"
@@ -122,7 +122,7 @@
 
 initfs_apk_keys() {
 	mkdir -p "$tmpdir"/etc/apk/keys
-	cp "$basedir"/etc/apk/keys/* "$tmpdir"/etc/apk/keys/
+	cp "${basedir}etc/apk/keys/"* "$tmpdir"/etc/apk/keys/
 }
 
 initfs_cpio() {
@@ -192,15 +192,19 @@
 	exit 0
 fi
 
+basedir="${basedir%/}/"
+[ "${basedir}" = "${basedir#/}" ] && basedir="${PWD}/${basedir}"
+
+
 [ -n "$1" ] && kernel="$1"
 [ -z "$kernel" ] && kernel=$(uname -r)
-kerneldir="$basedir/lib/modules/$kernel"
+kerneldir="${basedir}lib/modules/$kernel"
 
 imagename=${kernel##*-}
 [ "$imagename" = "$kernel" ] && imagename=initrd
 
 if [ -z "$outfile" ]; then
-	outfile="$basedir"/boot/${imagename}.gz
+	outfile="${basedir}boot/${imagename}.gz"
 fi
 
 if [ ! -d "$kerneldir" ]; then