]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Create a self-contained structure for dracut modules
authorVictor Lowther <victor.lowther-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Fri, 27 Feb 2009 00:02:47 +0000 (16:02 -0800)
committerHarald Hoyer <harald@redhat.com>
Wed, 4 Mar 2009 15:55:14 +0000 (16:55 +0100)
All modules now live in a subdirectory /modules.d.  Each module is
self-contained -- it should contain everything that it will install
on the initrd.  All modules must include a script named install, which
will be sourced by dracut.  This script should do the actual file installation
using inst methods.  The moddir variable will point to the full path to the
module dracut is currently working on.

As usual, this patch series applies on top of my previous patch series,
and is available as normalize-modules from http://git.fnordovax.org/dracut.

28 files changed:
dracut
modules.d/00dash/install [moved from modules/00dash.sh with 100% similarity]
modules.d/10redhat-i18n/install [moved from modules/10redhat-i18n.sh with 100% similarity]
modules.d/40network/60-net.rules [moved from rules.d/60-net.rules with 100% similarity]
modules.d/40network/dhclient-script [moved from dhclient-script with 100% similarity]
modules.d/40network/ifup [moved from ifup with 100% similarity]
modules.d/40network/install [new file with mode: 0755]
modules.d/40network/kill-dhclient.sh [moved from hooks/kill-dhclient.sh with 100% similarity]
modules.d/40network/run-dhclient.sh [moved from hooks/run-dhclient.sh with 100% similarity]
modules.d/90crypt/63-luks.rules [moved from rules.d/63-luks.rules with 100% similarity]
modules.d/90crypt/cryptroot.sh [moved from hooks/cryptroot.sh with 100% similarity]
modules.d/90crypt/install [new file with mode: 0755]
modules.d/90kernel-modules/install [moved from modules/90kernel-modules.sh with 100% similarity]
modules.d/90lvm/64-lvm.rules [moved from rules.d/64-lvm.rules with 100% similarity]
modules.d/90lvm/install [new file with mode: 0755]
modules.d/95debug/install [moved from modules/95debug.sh with 100% similarity]
modules.d/95terminfo/install [moved from modules/95terminfo.sh with 100% similarity]
modules.d/95udev-rules/install [moved from modules/95udev-rules.sh with 100% similarity]
modules.d/99base/init [moved from init with 100% similarity]
modules.d/99base/install [new file with mode: 0755]
modules.d/99base/mount-partition.sh [moved from hooks/mount-partition.sh with 100% similarity]
modules.d/99base/resume.sh [moved from hooks/resume.sh with 100% similarity]
modules.d/99base/selinux-loadpolicy.sh [moved from hooks/selinux-loadpolicy.sh with 100% similarity]
modules.d/99base/switch_root [moved from switch_root with 100% similarity]
modules/40network.sh [deleted file]
modules/90crypt.sh [deleted file]
modules/90lvm.sh [deleted file]
modules/99base.sh [deleted file]

diff --git a/dracut b/dracut
index c00944e904bfb466770638dd27816b449ce0f345..307824197720880814e56942852207bc26b2c86c 100755 (executable)
--- a/dracut
+++ b/dracut
@@ -52,12 +52,14 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do
 done
 
 # source all our modules
-for f in "$dsrc/modules"/*.sh; do
-    mod=${f##*/}; mod=${mod#[0-9][0-9]}; mod=${mod%.sh}
+for moddir in "$dsrc/modules.d"/*; do
+    [[ -d $moddir || -L $moddir ]] || continue
+    mod=${moddir##*/}; mod=${mod#[0-9][0-9]};
     if [[ $dracutmodules = all ]] || strstr "$dracutmodules" "$mod"; then 
-       [[ -x $f ]] && . "$f"
+       [[ -x $moddir/install ]] && . "$moddir/install"
     fi
 done
+unset moddir
 
 ## final stuff that has to happen
 
similarity index 100%
rename from modules/00dash.sh
rename to modules.d/00dash/install
similarity index 100%
rename from ifup
rename to modules.d/40network/ifup
diff --git a/modules.d/40network/install b/modules.d/40network/install
new file mode 100755 (executable)
index 0000000..3152f0d
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+dracut_install ip dhclient
+inst "$moddir/ifup" "/sbin/ifup"
+inst "$moddir/dhclient-script" "/sbin/dhclient-script"
+instmods =networking ecb arc4
+inst_rules "$moddir/60-net.rules"
+inst_hook pre-pivot 10 "$moddir/kill-dhclient.sh"
+inst_hook pre-mount 70 "$moddir/run-dhclient.sh"
diff --git a/modules.d/90crypt/install b/modules.d/90crypt/install
new file mode 100755 (executable)
index 0000000..92b5169
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+inst cryptsetup
+inst_rules "$moddir/63-luks.rules"
+inst_hook mount 10 "$moddir/cryptroot.sh"
\ No newline at end of file
diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install
new file mode 100755 (executable)
index 0000000..68e0056
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/bash
+inst lvm
+inst_rules "$moddir/64-lvm.rules"
\ No newline at end of file
similarity index 100%
rename from modules/95debug.sh
rename to modules.d/95debug/install
similarity index 100%
rename from init
rename to modules.d/99base/init
diff --git a/modules.d/99base/install b/modules.d/99base/install
new file mode 100755 (executable)
index 0000000..f59bc43
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+dracut_install mount mknod mkdir modprobe pidof sleep chroot echo sed sh ls
+# install our scripts and hooks
+inst "$moddir/init" "/init"
+inst "$moddir/switch_root" "/sbin/switch_root"
+inst_hook pre-pivot 50 "$moddir/selinux-loadpolicy.sh"
+inst_hook mount 90 "$moddir/resume.sh"
+inst_hook mount 99 "$moddir/mount-partition.sh"
similarity index 100%
rename from hooks/resume.sh
rename to modules.d/99base/resume.sh
similarity index 100%
rename from switch_root
rename to modules.d/99base/switch_root
diff --git a/modules/40network.sh b/modules/40network.sh
deleted file mode 100755 (executable)
index b477a9c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-dracut_install ip dhclient
-inst "$dsrc/ifup" "/sbin/ifup"
-inst "$dsrc/dhclient-script" "/sbin/dhclient-script"
-instmods =networking ecb arc4
-inst_rules "$dsrc/rules.d/60-net.rules"
-inst_hook pre-pivot 10 "$dsrc/hooks/kill-dhclient.sh"
-inst_hook pre-mount 70 "$dsrc/hooks/run-dhclient.sh"
diff --git a/modules/90crypt.sh b/modules/90crypt.sh
deleted file mode 100755 (executable)
index 5e8f4cb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-inst cryptsetup
-inst_rules "$dsrc/rules.d/63-luks.rules"
-inst_hook mount 10 "$dsrc/hooks/cryptroot.sh"
\ No newline at end of file
diff --git a/modules/90lvm.sh b/modules/90lvm.sh
deleted file mode 100755 (executable)
index 315fbb8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-inst lvm
-inst_rules "$dsrc/rules.d/64-lvm.rules"
\ No newline at end of file
diff --git a/modules/99base.sh b/modules/99base.sh
deleted file mode 100755 (executable)
index 580fb03..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-dracut_install mount mknod mkdir modprobe pidof sleep chroot echo sed sh ls
-# install our scripts and hooks
-inst "$initfile" "/init"
-inst "$switchroot" "/sbin/switch_root"
-inst_hook pre-pivot 50 "$dsrc/hooks/selinux-loadpolicy.sh"
-inst_hook mount 90 "$dsrc/hooks/resume.sh"
-inst_hook mount 99 "$dsrc/hooks/mount-partition.sh"