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