mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-09 13:26:52 +08:00
Remove sudo command from line 108 The script already checks to make sure it's being run as root, so sudo is superfluous here, and causes minimal Debian installs to fail since sudo is not included in base Debian.
109 lines
2.6 KiB
Bash
Executable file
109 lines
2.6 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
if [ $(id -u) -ne 0 ]; then
|
|
echo "This script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
echo "checking dependencies..."
|
|
|
|
if [ -f /etc/debian_version ]; then
|
|
install_cmd='apt-get install -y'
|
|
elif [ -f /etc/alpine-release ]; then
|
|
install_cmd='apk --update add'
|
|
elif [ -f /etc/centos-release ]; then
|
|
install_cmd='yum install -y'
|
|
elif [ -f /etc/fedora-release ]; then
|
|
install_cmd='dnf install -y'
|
|
else
|
|
install_cmd=''
|
|
fi
|
|
|
|
if [ -z "${install_cmd}" ]; then
|
|
echo "OS unsupported for automatic dependency install"
|
|
exit 1
|
|
fi
|
|
dependencies="wireguard"
|
|
set -- $dependencies
|
|
while [ -n "$1" ]; do
|
|
echo $1
|
|
is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
if [ "${is_installed}" = "install ok installed" ]; then
|
|
echo " " $1 is installed
|
|
else
|
|
echo " " $1 is not installed. Attempting install.
|
|
${install_cmd} $1
|
|
sleep 5
|
|
is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
if [ "${is_installed}" = "install ok installed" ]; then
|
|
echo " " $1 is installed
|
|
elif [ -x "$(command -v $1)" ]; then
|
|
echo " " $1 is installed
|
|
else
|
|
echo " " FAILED TO INSTALL $1
|
|
echo " " This may break functionality.
|
|
fi
|
|
fi
|
|
shift
|
|
done
|
|
|
|
set -e
|
|
|
|
[ -z "$KEY" ] && KEY=nokey;
|
|
[ -z "$VERSION" ] && echo "no \$VERSION provided, fallback to latest" && VERSION=latest;
|
|
[ "latest" != "$VERSION" ] && [ "v" != `echo $VERSION | cut -c1` ] && VERSION="v$VERSION"
|
|
|
|
dist=netclient
|
|
|
|
echo "OS Version = $(uname)"
|
|
echo "Netclient Version = $VERSION"
|
|
|
|
case $(uname | tr '[:upper:]' '[:lower:]') in
|
|
linux*)
|
|
if [ -z "$CPU_ARCH" ]; then
|
|
CPU_ARCH=$(uname -m)
|
|
fi
|
|
case $CPU_ARCH in
|
|
amd64)
|
|
dist=netclient
|
|
;;
|
|
x86_64)
|
|
dist=netclient
|
|
;;
|
|
x86_32)
|
|
dist=netclient-32
|
|
;;
|
|
arm64)
|
|
dist=netclient-arm64
|
|
;;
|
|
aarch64)
|
|
dist=netclient-arm64
|
|
;;
|
|
armv7l)
|
|
dist=netclient-armv7
|
|
;;
|
|
arm*)
|
|
dist=netclient-$CPU_ARCH
|
|
;;
|
|
*)
|
|
fatal "$CPU_ARCH : cpu architecture not supported"
|
|
esac
|
|
;;
|
|
darwin)
|
|
dist=netclient-darwin
|
|
;;
|
|
esac
|
|
|
|
echo "Binary = $dist"
|
|
|
|
url="https://github.com/gravitl/netmaker/releases/download/$VERSION/$dist"
|
|
if curl --output /dev/null --silent --head --fail "$url"; then
|
|
echo "Downloading $dist $VERSION"
|
|
wget -nv -O netclient $url
|
|
else
|
|
echo "Downloading $dist latest"
|
|
wget -nv -O netclient https://github.com/gravitl/netmaker/releases/download/latest/$dist
|
|
fi
|
|
chmod +x netclient
|
|
./netclient join -t $KEY
|
|
rm -f netclient
|