dc-agent/setup.sh
2019-08-22 22:05:54 +08:00

136 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Check root
if [ `whoami` != "root" ];then
echo -e "\nYou need to be root to perform this command. \n"
exit 4
fi
os=$(uname | tr '[:upper:]' '[:lower:]')
platform() {
local support_os=("darwin" "linux" "freebsd")
if [[ "$os" == ${support_os[0]} || "$os" == ${support_os[1]} || "$os" == ${support_os[2]} ]]; then
echo $os
else
echo "no"
fi
}
arch() {
local out="386"
local res=`uname -m`
case $res in
"x86_64") out="amd64"
;;
"x86") out="386"
;;
*) out=$res
;;
esac
echo $out
}
grepCross() {
local out=$(grep --version | grep -o "FreeBSD")
if [[ $out == "FreeBSD" ]]; then
echo $(grep -Eo "$@")
else
echo $(grep -Po "$@")
fi
}
cmdhas() {
type "$1" > /dev/null 2>&1
}
download() {
if cmdhas "curl"; then
curl --compressed -q "$@"
elif cmdhas "wget"; then
# Emulate curl with wget
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
-e 's/-L //' \
-e 's/--compressed //' \
-e 's/-I /--server-response /' \
-e 's/-s /-q /' \
-e 's/-o /-O /' \
-e 's/-C - /-c /')
# shellcheck disable=SC2086
eval wget $ARGS
fi
}
getLatestVersion() {
local platformValue=`platform`
local archValue=`arch`
if [[ platformValue == "no" ]]; then
echo -e "\nThis operating system is not supported.\n"
exit 10
elif [[ platformValue == "freebsd" ]]; then
echo -e "\nFreeBSD system is not supported for the time being.\n"
exit 10
fi
local res=$(download -s https://server-0.sercretcore.cn/api/download\?arch=${archValue}\&platform=${platformValue})
local status=$(echo "${res}" | grepCross '"status":.' | sed 's/"status"://g')
if [[ "${status}" == "1" ]]; then
local downloadURL=$(echo "${res}" | grepCross '"downloadURL":".*?[^\\]",' | sed 's/"downloadURL":"//g' | sed 's/",//g')
echo ${downloadURL}
else
echo "no"
fi
}
Install() {
downloadURL=`getLatestVersion`
echo ${downloadURL}
if [[ "${downloadURL}" != "no" ]]; then
mkdir -p /usr/local/dc-agent/bin
mkdir -p /usr/local/dc-agent/log
download "${downloadURL}" -o "/usr/local/dc-agent/bin/dc-agent"
echo -e "\n"
sudo chmod 755 /usr/local/dc-agent/bin/dc-agent
sudo /usr/local/dc-agent/bin/dc-agent install
sudo /usr/local/dc-agent/bin/dc-agent start
else
echo -e "\nServer connection failed, please check your network connection.\n"
fi
}
Uninstall() {
sudo /usr/local/dc-agent/bin/dc-agent stop
sudo /usr/local/dc-agent/bin/dc-agent remove
PIDFILE="/var/run/dc-agent.pid"
if [ -f $PIDFILE ]; then
PID=$(cat $PIDFILE)
sudo kill -QUIT $PID
fi
# Remove all file
sudo rm -rf /usr/local/dc-agent
echo -e "\nUninstall success!\n"
}
echo "What do you want to do?"
select var in "Install" "Uninstall" ; do
break;
done
echo "You have selected $var."
if [[ $var == "Install" ]]; then
Install
else
Uninstall
fi