diff --git a/modules.d/99base/dracut-dev-lib.sh b/modules.d/99base/dracut-dev-lib.sh index 5083f4f2..0df22b82 100755 --- a/modules.d/99base/dracut-dev-lib.sh +++ b/modules.d/99base/dracut-dev-lib.sh @@ -1,5 +1,25 @@ #!/bin/sh +# replaces all occurrences of 'search' in 'str' with 'replacement' +# +# str_replace str search replacement +# +# example: +# str_replace ' one two three ' ' ' '_' +str_replace() { + local in="$1" + local s="$2" + local r="$3" + local out='' + + while [ "${in##*"$s"*}" != "$in" ]; do + chop="${in%%"$s"*}" + out="${out}${chop}$r" + in="${in#*"$s"}" + done + echo "${out}${in}" +} + # get a systemd-compatible unit name from a path # (mimicks unit_name_from_path_instance()) dev_unit_name() { diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh index 7eb0a277..07c33eef 100755 --- a/modules.d/99base/module-setup.sh +++ b/modules.d/99base/module-setup.sh @@ -117,6 +117,7 @@ install() { export DRACUT_SYSTEMD=1 fi export PREFIX="$initdir" + export hookdir=/lib/dracut/hooks # shellcheck source=dracut-dev-lib.sh . "$moddir/dracut-dev-lib.sh"