diff options
author | Freya Murphy <freya@freyacat.org> | 2023-12-30 15:23:30 -0500 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2023-12-30 15:23:30 -0500 |
commit | 9ea034f42095bb1a61d1e8ee628575cb2bbee7e6 (patch) | |
tree | 123e5758aa4b078eea5dce59ebe4f1afaf7ec523 /bin/inet2.sh | |
parent | stubnet (diff) | |
download | freyanet-9ea034f42095bb1a61d1e8ee628575cb2bbee7e6.tar.gz freyanet-9ea034f42095bb1a61d1e8ee628575cb2bbee7e6.tar.bz2 freyanet-9ea034f42095bb1a61d1e8ee628575cb2bbee7e6.zip |
refactor
Diffstat (limited to '')
-rwxr-xr-x | bin/inet2.sh (renamed from inet2.initd) | 90 |
1 files changed, 38 insertions, 52 deletions
diff --git a/inet2.initd b/bin/inet2.sh index 5fe8c7c..7a93cbb 100755 --- a/inet2.initd +++ b/bin/inet2.sh @@ -1,20 +1,6 @@ -#!/sbin/openrc-run -name="inet2" -description="Sets up wireguard interfaces connected via the host's internet connection" +#!/usr/bin/env sh -extra_started_commands="reloadwg" - -run() { - printf '$ \x1b[32;1m%s\x1b[0m\n' "$*" - "$@" -} -step() { - printf '\x1b[34;1m>> %s\x1b[0m\n' "$*" -} - -getval() { - /usr/local/bin/config.awk /run/inet2/inet2.conf "$@" -} +. /var/lib/inet2/inet2.sh runscripts() { if [ -n "$(getval "interface $2" "$1")" ]; then @@ -25,23 +11,24 @@ runscripts() { fi } - - start() { + step "Starting inet2" + step "Removing old Wireguard interfaces" for file in /sys/class/net/*; do # Clear all wireguard interfaces type=$(cat "$file/type") if [ "$type" = "65534" ]; then - ifname="$(basename $file)" - ip link del "$ifname" + ifname="$(basename $file)" + run ip link del "$ifname" fi done - rm -rf /run/inet2/config 2>/dev/null - rm -rf /run/inet2/wg 2>/dev/null - cp /config/inet2.conf /run/inet2/inet2.conf - mkdir /run/inet2/wg - + rm -fr /run/inet2/wg 2> /dev/null + mkdir -p /run/inet2/wg + + mkbirdconfig.sh + + step "Setting loopback addresses" getval Loopback | while read -r addr; do run ip addr add "$addr" dev lo done @@ -84,36 +71,35 @@ start() { } stop() { - if [ -f /run/inet2/inet2.conf ]; then - getval Loopback | while read -r addr; do - run ip addr del "$addr" dev lo - done + step "Stopping inet2" + step "Removing loopback" + getval Loopback | while read -r addr; do + run ip addr del "$addr" dev lo + done - getval interface | while read -r inter; do - runscripts PreDown "$inter" - - step "Bringing $inter down" - run ip link del "$inter" - - runscripts PostDown "$inter" - done + getval interface | while read -r inter; do + runscripts PreDown "$inter" - rm -rf /run/inet2/inet2.conf - fi + step "Bringing $inter down" + run ip link del "$inter" + + runscripts PostDown "$inter" + done } -# just reloads the wireguard configs for existing interfaces -# for if a peer's domain name resolves to a different ip address now -# and it needs to be re-resolved without taking down the connection -reloadwg() { - if [ -f /run/inet2/inet2.conf ]; then - getval interface | while read -r inter; do - step "Generating config for $inter" - run mkwgconfig.sh "$inter" /run/inet2/wg/"$inter" /config/inet2.conf - - step "Setting Wireguard config for $inter" - run wg setconf "$inter" /run/inet2/wg/"$inter" - done - fi +reload() { + getval interface | while read -r inter; do + step "Generating config for $inter" + run mkwgconfig.sh "$inter" /run/inet2/wg/"$inter" /config/inet2.conf + + step "Setting Wireguard config for $inter" + run wg setconf "$inter" /run/inet2/wg/"$inter" + done +} + +restart() { + stop + start } +$1 |