wg-quick: darwin: use bash from environment and require bash 4+
For properly configured Homebrew installations /usr/local/bin should be before /bin, so this should still work. This allows the script to be used in more than one setting. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
699777da8c
commit
4502350512
|
@ -1,11 +1,9 @@
|
||||||
#!/usr/local/bin/bash
|
#!/usr/bin/env bash
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
#
|
#
|
||||||
# Copyright (C) 2015-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
|
# Copyright (C) 2015-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
# The shebang is in /usr/local because this requires bash 4.
|
|
||||||
|
|
||||||
set -e -o pipefail
|
set -e -o pipefail
|
||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
|
@ -29,6 +27,18 @@ CONFIG_FILE=""
|
||||||
PROGRAM="${0##*/}"
|
PROGRAM="${0##*/}"
|
||||||
ARGS=( "$@" )
|
ARGS=( "$@" )
|
||||||
|
|
||||||
|
cmd() {
|
||||||
|
echo "[#] $*" >&2
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
die() {
|
||||||
|
echo "$PROGRAM: $*" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ ${BASH_VERSINFO[0]} -ge 4 ]] || die "Version mismatch: bash ${BASH_VERSINFO[0]} detected, when bash 4+ required"
|
||||||
|
|
||||||
parse_options() {
|
parse_options() {
|
||||||
local interface_section=0 line key value stripped
|
local interface_section=0 line key value stripped
|
||||||
CONFIG_FILE="$1"
|
CONFIG_FILE="$1"
|
||||||
|
@ -71,16 +81,6 @@ read_bool() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd() {
|
|
||||||
echo "[#] $*" >&2
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
die() {
|
|
||||||
echo "$PROGRAM: $*" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
auto_su() {
|
auto_su() {
|
||||||
[[ $UID == 0 ]] || exec sudo -p "$PROGRAM must be run as root. Please enter the password for %u to continue: " "$SELF" "${ARGS[@]}"
|
[[ $UID == 0 ]] || exec sudo -p "$PROGRAM must be run as root. Please enter the password for %u to continue: " "$SELF" "${ARGS[@]}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,16 @@ CONFIG_FILE=""
|
||||||
PROGRAM="${0##*/}"
|
PROGRAM="${0##*/}"
|
||||||
ARGS=( "$@" )
|
ARGS=( "$@" )
|
||||||
|
|
||||||
|
cmd() {
|
||||||
|
echo "[#] $*" >&2
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
die() {
|
||||||
|
echo "$PROGRAM: $*" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
parse_options() {
|
parse_options() {
|
||||||
local interface_section=0 line key value stripped
|
local interface_section=0 line key value stripped
|
||||||
CONFIG_FILE="$1"
|
CONFIG_FILE="$1"
|
||||||
|
@ -68,16 +78,6 @@ read_bool() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd() {
|
|
||||||
echo "[#] $*" >&2
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
die() {
|
|
||||||
echo "$PROGRAM: $*" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
auto_su() {
|
auto_su() {
|
||||||
[[ $UID == 0 ]] || exec sudo -p "$PROGRAM must be run as root. Please enter the password for %u to continue: " "$SELF" "${ARGS[@]}"
|
[[ $UID == 0 ]] || exec sudo -p "$PROGRAM must be run as root. Please enter the password for %u to continue: " "$SELF" "${ARGS[@]}"
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue