about summary refs log tree commit diff
path: root/src/core/settings/plugins/ifcfg-rh/nm-ifup
blob: 6b32fe1bf638111437ae5656847e6bc403aff4ce (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
34
35
36
37
38
39
40
41
42
43
44
#!/bin/bash

CONFIG="$1"

if [ -z "${CONFIG}" ] ; then
    echo $"Usage: ifup <device name>" >&2
    exit 1
fi

usage_and_fail() {
    cat <<EOF >&2
$1!

See all profiles with \`nmcli connection\`.
Reload files from disk with \`nmcli connection reload\`
Activate the desired profile with \`nmcli connection up \"\$NAME\"\`
EOF
    exit 1
}

OLD_IFS="$IFS"

re='^/etc/sysconfig/network-scripts/ifcfg-[^/]+$'
for f in "/etc/sysconfig/network-scripts/ifcfg-$CONFIG" "/etc/sysconfig/network-scripts/$CONFIG" ; do
    [[ "$f" =~ $re ]] || continue
    [ -f "$f" ] || continue

    nmcli connection load "$f" \
    && nmcli connection up filename "$f" \
    && exit 0

    usage_and_fail "Failure to activate file \"$CONFIG\""
done

IFS=$'\n '
UUIDS=( $(nmcli -g connection.uuid connection show "$CONFIG" 2>/dev/null) )
IFS="$OLD_IFS"
if [ "${#UUIDS[@]}" -eq 1 ] ; then
    nmcli connection up uuid "${UUIDS[0]}" \
    && exit 0
    usage_and_fail "Failure to activate profile \"$CONFIG\" (uuid ${UUIDS[0]})"
fi

usage_and_fail "No suitable profile \"$CONFIG\" found"