Hooks and modules have a .sh extension

This makes it trivial to filter out temporary files, editor backups,
package management leftovers, etc.  Thanks, Kay for the idea.
master
Victor Lowther 2009-02-20 09:24:18 -08:00 committed by Dave Jones
parent 1c25acaac4
commit 3f9c86ab86
16 changed files with 10 additions and 9 deletions

View File

@ -12,8 +12,8 @@ install:
install -m 0755 dracut-functions $(DESTDIR)/usr/libexec/dracut/functions
mkdir $(DESTDIR)/usr/libexec/dracut/rules.d
for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut ; done
for hook in hooks/* ; do install -m 0755 $$hook $(DESTDIR)/usr/libexec/dracut ; done
for module in modules/*; do install -m 0755 $$module $(DESTDIR)/usr/libexec/dracut ; done
for hook in hooks/*.sh ; do install -m 0755 $$hook $(DESTDIR)/usr/libexec/dracut ; done
for module in modules/*.sh; do install -m 0755 $$module $(DESTDIR)/usr/libexec/dracut ; done
clean:
rm -f *~


1
README
View File

@ -37,6 +37,7 @@ Some general rules for writing modules:
* Generator modules should have a two digit numeric prefix -- they run in
ascending sort order. Anything in the 90-99 range is stuff that dracut
relies on, so try not to break those hooks.
* Generator modules and hooks must have a .sh extension.

Also, there is an attempt to keep things as distribution-agnostic as
possible. Every distribution has their own tool here and it's not

6
dracut
View File

@ -44,7 +44,7 @@ hookdirs="pre-udev pre-mount pre-pivot"
initdir=$(mktemp -d -t initramfs.XXXXXX)
trap 'rm -rf "$initdir"' 0 # clean up after ourselves no matter how we die.

export initdir hookdirs rulesdir dsrc dracutmodules kmodules
export initdir hookdirs rulesdir dsrc dracutmodules modules

# Create some directory structure first
for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do
@ -52,8 +52,8 @@ 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"/*[^~]; do
mod=${f##*/}; mod=${mod#[0-9][0-9]}
for f in "$dsrc/modules"/*.sh; do
mod=${f##*/}; mod=${mod#[0-9][0-9]}; mod=${mod%.sh}
if [[ $dracutmodules = all ]] || strstr "$dracutmodules" "$mod"; then
[[ -x $f ]] && . "$f"
fi

2
init
View File

@ -24,7 +24,7 @@ getarg() {
source_all() {
local f
[ "$1" ] && [ -d "/$1" ] || return
for f in "/$1"/*; do [ -f "$f" ] && . "$f"; done
for f in "/$1"/*.sh; do [ -f "$f" ] && . "$f"; done
}

echo "Starting initrd..."

View File

@ -1,4 +1,4 @@
#!/bin/bash
inst cryptsetup
inst_rules "$dsrc/rules.d/63-luks.rules"
inst_hook pre-mount 50 "$dsrc/hooks/cryptroot"
inst_hook pre-mount 50 "$dsrc/hooks/cryptroot.sh"

View File

@ -3,6 +3,6 @@ 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"
inst_hook pre-mount 99 "$dsrc/hooks/resume"
inst_hook pre-pivot 50 "$dsrc/hooks/selinux-loadpolicy.sh"
inst_hook pre-mount 99 "$dsrc/hooks/resume.sh"