summaryrefslogtreecommitdiffstats
path: root/modules.d/90livenet/parse-livenet.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 13:54:25 +0000
commit9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a (patch)
tree2efb72864cc69e174c9c5ee33efb88a5f1553b48 /modules.d/90livenet/parse-livenet.sh
parentInitial commit. (diff)
downloaddracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.tar.xz
dracut-9cb1c4df7b9ce1a9ad1312621b0f2b16a94fba3a.zip
Adding upstream version 060+5.upstream/060+5
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules.d/90livenet/parse-livenet.sh')
-rwxr-xr-xmodules.d/90livenet/parse-livenet.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules.d/90livenet/parse-livenet.sh b/modules.d/90livenet/parse-livenet.sh
new file mode 100755
index 0000000..a1d14a8
--- /dev/null
+++ b/modules.d/90livenet/parse-livenet.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# live net images - just like live images, but specified like:
+# root=live:[url-to-backing-file]
+
+[ -z "$root" ] && root=$(getarg root=)
+. /lib/url-lib.sh
+
+# live updates
+updates=$(getarg live.updates=)
+if [ -n "$updates" ]; then
+ # make sure network comes up even if we're doing a local live device
+ if [ -z "$netroot" ]; then
+ echo > /tmp/net.ifaces
+ fi
+ echo "$updates" > /tmp/liveupdates.info
+ echo '[ -e /tmp/liveupdates.done ]' > "$hookdir"/initqueue/finished/liveupdates.sh
+fi
+
+str_starts "$root" "live:" && liveurl="$root"
+str_starts "$liveurl" "live:" || return
+liveurl="${liveurl#live:}"
+
+# setting netroot to "livenet:..." makes "livenetroot" get run after ifup
+if get_url_handler "$liveurl" > /dev/null; then
+ info "livenet: root image at $liveurl"
+ netroot="livenet:$liveurl"
+ root="livenet" # quiet complaints from init
+ # shellcheck disable=SC2034
+ rootok=1
+ wait_for_dev -n /dev/root
+else
+ info "livenet: no url handler for $liveurl"
+fi