summaryrefslogtreecommitdiffstats
path: root/modules.d/90livenet/parse-livenet.sh
blob: a1d14a8fce9f4a1f51d8994dd35220279aa313db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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