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
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
shopt -s extglob
 | 
			
		||||
export LC_ALL=C
 | 
			
		||||
@ -29,6 +27,18 @@ CONFIG_FILE=""
 | 
			
		||||
PROGRAM="${0##*/}"
 | 
			
		||||
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() {
 | 
			
		||||
	local interface_section=0 line key value stripped
 | 
			
		||||
	CONFIG_FILE="$1"
 | 
			
		||||
@ -71,16 +81,6 @@ read_bool() {
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cmd() {
 | 
			
		||||
	echo "[#] $*" >&2
 | 
			
		||||
	"$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
die() {
 | 
			
		||||
	echo "$PROGRAM: $*" >&2
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
auto_su() {
 | 
			
		||||
	[[ $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##*/}"
 | 
			
		||||
ARGS=( "$@" )
 | 
			
		||||
 | 
			
		||||
cmd() {
 | 
			
		||||
	echo "[#] $*" >&2
 | 
			
		||||
	"$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
die() {
 | 
			
		||||
	echo "$PROGRAM: $*" >&2
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
parse_options() {
 | 
			
		||||
	local interface_section=0 line key value stripped
 | 
			
		||||
	CONFIG_FILE="$1"
 | 
			
		||||
@ -68,16 +78,6 @@ read_bool() {
 | 
			
		||||
	esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cmd() {
 | 
			
		||||
	echo "[#] $*" >&2
 | 
			
		||||
	"$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
die() {
 | 
			
		||||
	echo "$PROGRAM: $*" >&2
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
auto_su() {
 | 
			
		||||
	[[ $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
	
	Block a user