]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(base): add missing `str_replace` to `dracut-dev-lib.sh`
authorHarald Hoyer <harald@redhat.com>
Tue, 18 May 2021 08:13:56 +0000 (10:13 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Tue, 18 May 2021 09:31:16 +0000 (11:31 +0200)
```
dracut-dev-lib.sh: line 92: str_replace: command not found
dracut-dev-lib.sh: line 98: /var/tmp/dracut.sabKZg/initramfs/initqueue/finished/devexists-.sh: No such file or directory
dracut-dev-lib.sh: line 83: /var/tmp/dracut.sabKZg/initramfs/emergency/80-.sh: No such file or directory
```

modules.d/99base/dracut-dev-lib.sh
modules.d/99base/module-setup.sh

index 5083f4f254a6c3be8e39180a855550abcef42c03..0df22b82cb4bd0b086b7967b05c815cd2eb91ffe 100755 (executable)
@@ -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() {
index 7eb0a27744942acb9d6cd0d32635fd8a7e840bba..07c33eefc4cb2bc878f2a19ae2b8d69d9be552ef 100755 (executable)
@@ -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"