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"
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to