|
@@ -10,15 +10,30 @@ echo "checking dependencies..."
|
|
OS=$(uname)
|
|
OS=$(uname)
|
|
|
|
|
|
if [ -f /etc/debian_version ]; then
|
|
if [ -f /etc/debian_version ]; then
|
|
|
|
+ dependencies="wireguard wireguard-tools"
|
|
|
|
+ update_cmd='apt update'
|
|
install_cmd='apt-get install -y'
|
|
install_cmd='apt-get install -y'
|
|
elif [ -f /etc/alpine-release ]; then
|
|
elif [ -f /etc/alpine-release ]; then
|
|
|
|
+ dependencies="wireguard"
|
|
|
|
+ update_cmd='apk update'
|
|
install_cmd='apk --update add'
|
|
install_cmd='apk --update add'
|
|
elif [ -f /etc/centos-release ]; then
|
|
elif [ -f /etc/centos-release ]; then
|
|
|
|
+ dependencies="wireguard"
|
|
|
|
+ update_cmd='yum update'
|
|
install_cmd='yum install -y'
|
|
install_cmd='yum install -y'
|
|
elif [ -f /etc/fedora-release ]; then
|
|
elif [ -f /etc/fedora-release ]; then
|
|
|
|
+ dependencies="wireguard"
|
|
|
|
+ update_cmd='dnf update'
|
|
install_cmd='dnf install -y'
|
|
install_cmd='dnf install -y'
|
|
elif [ "${OS}" = "FreeBSD" ]; then
|
|
elif [ "${OS}" = "FreeBSD" ]; then
|
|
|
|
+ dependencies="wireguard"
|
|
|
|
+ update_cmd='pkg update'
|
|
install_cmd='pkg install -y'
|
|
install_cmd='pkg install -y'
|
|
|
|
+elif [ -f /etc/openwrt_release ]; then
|
|
|
|
+ dependencies="wireguard-tools"
|
|
|
|
+ OS="OpenWRT"
|
|
|
|
+ update_cmd='opkg update'
|
|
|
|
+ install_cmd='opkg install'
|
|
else
|
|
else
|
|
install_cmd=''
|
|
install_cmd=''
|
|
fi
|
|
fi
|
|
@@ -27,7 +42,7 @@ if [ -z "${install_cmd}" ]; then
|
|
echo "OS unsupported for automatic dependency install"
|
|
echo "OS unsupported for automatic dependency install"
|
|
exit 1
|
|
exit 1
|
|
fi
|
|
fi
|
|
-dependencies="wireguard"
|
|
|
|
|
|
+
|
|
set -- $dependencies
|
|
set -- $dependencies
|
|
while [ -n "$1" ]; do
|
|
while [ -n "$1" ]; do
|
|
echo $1
|
|
echo $1
|
|
@@ -50,15 +65,23 @@ while [ -n "$1" ]; do
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
else
|
|
- is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
|
|
- if [ "${is_installed}" = "install ok installed" ]; then
|
|
|
|
|
|
+ if [ "${OS}" = "OpenWRT" ]; then
|
|
|
|
+ is_installed=$(opkg list-installed $1 | grep $1)
|
|
|
|
+ else
|
|
|
|
+ is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
|
|
+ fi
|
|
|
|
+ if [ "${is_installed}" != "" ]; then
|
|
echo " " $1 is installed
|
|
echo " " $1 is installed
|
|
else
|
|
else
|
|
echo " " $1 is not installed. Attempting install.
|
|
echo " " $1 is not installed. Attempting install.
|
|
${install_cmd} $1
|
|
${install_cmd} $1
|
|
sleep 5
|
|
sleep 5
|
|
- is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
|
|
- if [ "${is_installed}" = "install ok installed" ]; then
|
|
|
|
|
|
+ if [ "${OS}" = "OpenWRT" ]; then
|
|
|
|
+ is_installed=$(opkg list-installed $1 | grep $1)
|
|
|
|
+ else
|
|
|
|
+ is_installed=$(dpkg-query -W --showformat='${Status}\n' $1 | grep "install ok installed")
|
|
|
|
+ fi
|
|
|
|
+ if [ "${is_installed}" != "" ]; then
|
|
echo " " $1 is installed
|
|
echo " " $1 is installed
|
|
elif [ -x "$(command -v $1)" ]; then
|
|
elif [ -x "$(command -v $1)" ]; then
|
|
echo " " $1 is installed
|
|
echo " " $1 is installed
|
|
@@ -155,18 +178,23 @@ esac
|
|
echo "Binary = $dist"
|
|
echo "Binary = $dist"
|
|
|
|
|
|
url="https://github.com/gravitl/netmaker/releases/download/$VERSION/$dist"
|
|
url="https://github.com/gravitl/netmaker/releases/download/$VERSION/$dist"
|
|
|
|
+curl_opts='-nv'
|
|
|
|
+if [ "${OS}" = "OpenWRT" ]; then
|
|
|
|
+ curl_opts='-q'
|
|
|
|
+fi
|
|
|
|
+
|
|
if curl --output /dev/null --silent --head --fail "$url"; then
|
|
if curl --output /dev/null --silent --head --fail "$url"; then
|
|
echo "Downloading $dist $VERSION"
|
|
echo "Downloading $dist $VERSION"
|
|
- wget -nv -O netclient $url
|
|
|
|
|
|
+ wget $curl_opts -O netclient $url
|
|
else
|
|
else
|
|
echo "Downloading $dist latest"
|
|
echo "Downloading $dist latest"
|
|
- wget -nv -O netclient https://github.com/gravitl/netmaker/releases/download/latest/$dist
|
|
|
|
|
|
+ wget $curl_opts -O netclient https://github.com/gravitl/netmaker/releases/download/latest/$dist
|
|
fi
|
|
fi
|
|
|
|
|
|
chmod +x netclient
|
|
chmod +x netclient
|
|
|
|
|
|
EXTRA_ARGS=""
|
|
EXTRA_ARGS=""
|
|
-if [ "${OS}" = "FreeBSD" ]; then
|
|
|
|
|
|
+if [ "${OS}" = "FreeBSD" ] || [ "${OS}" = "OpenWRT" ]; then
|
|
EXTRA_ARGS="--daemon=off"
|
|
EXTRA_ARGS="--daemon=off"
|
|
fi
|
|
fi
|
|
|
|
|
|
@@ -201,6 +229,58 @@ END_OF_FILE
|
|
sudo chmod +x /usr/local/etc/rc.d/netclient
|
|
sudo chmod +x /usr/local/etc/rc.d/netclient
|
|
sudo /usr/local/etc/rc.d/netclient enable
|
|
sudo /usr/local/etc/rc.d/netclient enable
|
|
sudo /usr/local/etc/rc.d/netclient start
|
|
sudo /usr/local/etc/rc.d/netclient start
|
|
-else
|
|
|
|
|
|
+
|
|
|
|
+elif [ "${OS}" = "OpenWRT" ]; then
|
|
|
|
+ mv ./netclient /etc/netclient/netclient
|
|
|
|
+ cat << 'END_OF_FILE' > ./netclient.service.tmp
|
|
|
|
+#!/bin/sh /etc/rc.common
|
|
|
|
+
|
|
|
|
+EXTRA_COMMANDS="status"
|
|
|
|
+EXTRA_HELP=" status Check service is running"
|
|
|
|
+START=99
|
|
|
|
+
|
|
|
|
+LOG_FILE="/tmp/netclient.logs"
|
|
|
|
+
|
|
|
|
+start() {
|
|
|
|
+ if [ ! -f "${LOG_FILE}" ];then
|
|
|
|
+ touch "${LOG_FILE}"
|
|
|
|
+ fi
|
|
|
|
+ local PID=$(ps|grep "netclient checkin -n all"|grep -v grep|awk '{print $1}')
|
|
|
|
+ if [ "${PID}" ];then
|
|
|
|
+ echo "service is running"
|
|
|
|
+ return
|
|
|
|
+ fi
|
|
|
|
+ bash -c "while [ 1 ]; do /etc/netclient/netclient checkin -n all >> ${LOG_FILE} 2>&1;sleep 15;\
|
|
|
|
+ if [ $(ls -l ${LOG_FILE}|awk '{print $5}') -gt 10240000 ];then tar zcf "${LOG_FILE}.tar" -C / "tmp/netclient.logs" && > $LOG_FILE;fi;done &"
|
|
|
|
+ echo "start"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+stop() {
|
|
|
|
+ pids=$(ps|grep "netclient checkin -n all"|grep -v grep|awk '{print $1}')
|
|
|
|
+ for i in "${pids[@]}"
|
|
|
|
+ do
|
|
|
|
+ if [ "${i}" ];then
|
|
|
|
+ kill "${i}"
|
|
|
|
+ fi
|
|
|
|
+ done
|
|
|
|
+ echo "stop"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+status() {
|
|
|
|
+ local PID=$(ps|grep "netclient checkin -n all"|grep -v grep|awk '{print $1}')
|
|
|
|
+ if [ "${PID}" ];then
|
|
|
|
+ echo -e "netclient[${PID}] is running \n"
|
|
|
|
+ else
|
|
|
|
+ echo -e "netclient is not running \n"
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+END_OF_FILE
|
|
|
|
+ mv ./netclient.service.tmp /etc/init.d/netclient
|
|
|
|
+ chmod +x /etc/init.d/netclient
|
|
|
|
+ /etc/init.d/netclient enable
|
|
|
|
+ /etc/init.d/netclient start
|
|
|
|
+else
|
|
rm -f netclient
|
|
rm -f netclient
|
|
fi
|
|
fi
|
|
|
|
+
|