81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
##makedesc: Install openvpn v2.6.3 (src)
|
|
|
|
set -eo pipefail
|
|
|
|
installed() { command -v "$1" >/dev/null 2>&1; }
|
|
|
|
require() {
|
|
local missing=()
|
|
for pkg in "$@"; do
|
|
installed "$pkg" || missing+=("$pkg")
|
|
done
|
|
if [ ${#missing[@]} -gt 0 ]; then
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
if installed brew; then
|
|
brew install "${missing[@]}"
|
|
else
|
|
echo "ERROR: Missing: ${missing[*]}. Install manually or use brew." >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
sudo apt install -y "${missing[@]}"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
download() {
|
|
if installed wget; then
|
|
wget -q --show-progress "$1" -O "$2"
|
|
else
|
|
curl -fsSL "$1" -o "$2"
|
|
fi
|
|
}
|
|
|
|
unpack_targz() {
|
|
tar -xzvf "$1" -C "$2"
|
|
}
|
|
|
|
install() {
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
if installed brew; then
|
|
brew install openvpn
|
|
else
|
|
echo "ERROR: Install Homebrew first." >&2
|
|
exit 1
|
|
fi
|
|
return
|
|
fi
|
|
|
|
echo
|
|
echo "==============================================="
|
|
echo "Installing openvpn"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
# https://openvpn.net/community-downloads/
|
|
# https://openvpn.net/community-resources/installing-openvpn/
|
|
|
|
OVPNVER='2.6.3'
|
|
|
|
require libssl-dev liblzo2-dev libpam0g-dev
|
|
|
|
mkdir -p "$HOME/install/"
|
|
download "https://swupdate.openvpn.org/community/releases/openvpn-${OVPNVER}.tar.gz" "$HOME/install/openvpn-${OVPNVER}.tar.gz"
|
|
unpack_targz "$HOME/install/openvpn-${OVPNVER}.tar.gz" "$HOME/install/"
|
|
cd "$HOME/install/openvpn-${OVPNVER}"
|
|
sudo ./configure
|
|
sudo make
|
|
sudo make install
|
|
sudo apt install -y network-manager-openvpn network-manager-openvpn-gnome
|
|
|
|
echo
|
|
echo "Finish!"
|
|
openvpn --version
|
|
echo
|
|
}
|
|
|
|
case "$1" in
|
|
*) install ;;
|
|
esac
|