SVN: geninitrd/trunk: Makefile functions geninitrd

glen glen at pld-linux.org
Thu Feb 8 19:21:07 CET 2007


Author: glen
Date: Thu Feb  8 19:21:03 2007
New Revision: 8240

Added:
   geninitrd/trunk/functions
Modified:
   geninitrd/trunk/Makefile
   geninitrd/trunk/geninitrd
Log:
- export functions so other programs could reuse code
- find_root() for now

Modified: geninitrd/trunk/Makefile
==============================================================================
--- geninitrd/trunk/Makefile	(original)
+++ geninitrd/trunk/Makefile	Thu Feb  8 19:21:03 2007
@@ -3,15 +3,17 @@
 prefix		:= /usr
 mandir		:= $(prefix)/share/man
 sbindir		:= /sbin
-sysconfdir	:= /etc/sysconfig
+sysconfdir	:= /etc/geninitrd
+sysconfigdir := /etc/sysconfig
 
 all: geninitrd.8
 
 install:
-	install -d $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir)
+	install -d $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(sysconfdir) $(DESTDIR)$(sysconfigdir)
 	install geninitrd $(DESTDIR)$(sbindir)/geninitrd
 	install -m644 geninitrd.8 $(DESTDIR)$(mandir)/man8/geninitrd.8
-	install -m644 geninitrd.sysconfig $(DESTDIR)$(sysconfdir)/geninitrd
+	install -m644 functions $(DESTDIR)$(sysconfdir)/functions
+	install -m644 geninitrd.sysconfig $(DESTDIR)$(sysconfigdir)/geninitrd
 
 geninitrd.8: geninitrd.8.xml
 	refentry2man < geninitrd.8.xml > geninitrd.8

Added: geninitrd/trunk/functions
==============================================================================
--- (empty file)
+++ geninitrd/trunk/functions	Thu Feb  8 19:21:03 2007
@@ -0,0 +1,60 @@
+#!/bin/sh
+#
+# geninitrd functions
+
+# Find root device from fstab.
+#
+# @param	string	$fstab location of /etc/fstab
+# @output	string	root device: /dev/hda1, /dev/sys/rootfs, etc
+# @return	false on failure
+# 
+# Sets global variables:
+# - $rootdev
+# - $rootFS
+#
+find_root() {
+	local fstab="$1"
+	local function='find_root'
+
+	eval $(awk '/^[\t ]*#/ {next} {if ( $2 == "/" ) {print "rootdev=\"" $1 "\"\nrootFs=\"" $3 "\""}}' $fstab)
+	if [ -z "$rootdev" ]; then
+		echo >&2 "$function: can't find real device for rootfs"
+		return 1
+	fi
+
+	case $rootdev in
+	LABEL=*)
+		if [ ! -x /sbin/blkid ]; then
+			echo >&2 "$function: /sbin/blkid is missing"
+			return 2
+		fi
+
+		local label=${rootdev#"LABEL="}
+		local dev=$(/sbin/blkid -t LABEL="$label" -o device)
+		if [ "$dev" -a -r "$dev" ]; then
+			rootdev=$dev
+		fi
+		;;
+
+	UUID=*)
+		if [ ! -x /sbin/blkid ]; then
+			echo >&2 "$function: /sbin/blkid is missing"
+			return 2
+		fi
+
+		local uuid=${rootdev#"UUID="}
+		local dev=$(/sbin/blkid -t UUID="$uuid" -o device)
+
+		if [ "$dev" -a -r "$dev" ]; then
+			rootdev=$dev
+		fi
+		;;
+	esac
+
+	if [ ! -r "$rootdev" ]; then
+		echo >&2 "$function: can't find real device for $rootdev"
+		return 1
+	fi
+
+	return 0
+}

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd	(original)
+++ geninitrd/trunk/geninitrd	Thu Feb  8 19:21:03 2007
@@ -17,6 +17,7 @@
 VERSION=$(echo "$RCSID" | awk '{print $3}')
 
 . /etc/rc.d/init.d/functions
+. /etc/geninitrd/functions
 
 COMPRESS="yes"
 # INITRDFS is set later (catch obsoleted FS option)
@@ -221,53 +222,6 @@
 	cp "$1" "$2"
 }
 
-# sets globals:
-# - $rootdev
-# - $rootFS
-find_root() {
-	eval $(awk '/^[\t ]*#/ {next} {if ( $2 == "/" ) {print "rootdev=\"" $1 "\"\nrootFs=\"" $3 "\""}}' $fstab)
-	if [ -z "$rootdev" ]; then
-		echo >&2 "geninitrd can't find real device for rootfs"
-		exit 1
-	fi
-
-	case $rootdev in
-	LABEL=*)
-		if [ ! -x /sbin/blkid ]; then
-			echo >&2 "/sbin/blkid is missing"
-			exit 1
-		fi
-
-		local label=${rootdev#"LABEL="}
-		local dev=$(/sbin/blkid -t LABEL="$label" -o device)
-		if [ "$dev" -a -r "$dev" ]; then
-			debug "Using $dev as device for rootfs"
-			rootdev=$dev
-		fi
-		;;
-
-	UUID=*)
-		if [ ! -x /sbin/blkid ]; then
-			echo >&2 "/sbin/blkid is missing"
-			exit 1
-		fi
-
-		local uuid=${rootdev#"UUID="}
-		local dev=$(/sbin/blkid -t UUID="$uuid" -o device)
-
-		if [ "$dev" -a -r "$dev" ]; then
-			debug "Using $dev as device for rootfs"
-			rootdev=$dev
-		fi
-		;;
-	esac
-
-	if [ ! -r "$rootdev" ]; then
-		echo >&2 "geninitrd can't find real device for $rootdev"
-		exit 1
-	fi
-}
-
 find_modules_softraid() {
 	if [ -f /etc/mdadm.conf ]; then
 		debug "Finding RAID details using mdadm for rootdev=$1"
@@ -992,7 +946,9 @@
 	find_modules_ide
 fi
 
-find_root
+find_root "$fstab" || exit
+debug "Using $rootdev as device for rootfs"
+
 find_modules_for "$rootdev"
 
 findmodule "-$rootFs"


More information about the pld-cvs-commit mailing list