#!/usr/bin/sh

# Source Qubes library.
# shellcheck source=init/functions
. /usr/lib/qubes/init/functions

if test -d /sys/fs/selinux; then enable_selinux=Z; else enable_selinux=''; fi
NM_CONFIG_DIR=/etc/NetworkManager/system-connections
if [ -d "$NM_CONFIG_DIR" ] && [ ! -h "$NM_CONFIG_DIR" ]; then
    mkdir "-p$enable_selinux" /rw/config/NM-system-connections
    mv ${enable_selinux:+-Z} "$NM_CONFIG_DIR"/* /rw/config/NM-system-connections/ 2> /dev/null || true
    rmdir "$NM_CONFIG_DIR"
    ln -s /rw/config/NM-system-connections "$NM_CONFIG_DIR"
fi

# adjust interface name in connections after R4.2->R4.3 upgrade
for conn in "$NM_CONFIG_DIR"/*.nmconnection; do
    intf=$(sed -n '/^interface-name=/ {s/.*=//;p}' "$conn")
    if [ -z "$intf" ]; then
        continue
    fi
    new_intf="${intf%f0}"
    if ! [ -e "/sys/class/net/$intf" ] && [ -e "/sys/class/net/$new_intf" ]; then
        sed -i "s/^interface-name=$intf/interface-name=$new_intf/" "$conn"
    fi
done

# Do not manage xen-provided network devices
unmanaged_devices=mac:fe:ff:ff:ff:ff:ff
#for mac in `xenstore-ls device/vif | grep mac | cut -d= -f2 | tr -d '" '`; do
#    unmanaged_devices="$unmanaged_devices;mac:$mac"
#done
sed -E -i -e "s/^#?unmanaged-devices=.*/unmanaged-devices=$unmanaged_devices/
s/^#?plugins=.*/plugins=keyfile/" /etc/NetworkManager/NetworkManager.conf

exit 0
