dc-agent/setup.sh
2019-08-20 00:32:30 +08:00

122 lines
2.6 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 0
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"
;;
# "armv7l") out="armv7l"
# ;;
# "amd64") out="amd64"
# ;;
*) out=res
;;
esac
echo $out
}
getLatestVersion() {
local res=$(curl -s https://server-0.sercretcore.cn/api/download\?arch=`arch`\&platform=`platform`)
local status=$(echo "${res}" | grep -Eo '"status":.*?[^\\]' | sed 's/"status"://g')
if [ ${status} == 1 ]
then
local downloadURL=$(echo "${res}" | grep -Eo '"downloadURL":.*?[^\\]",' | sed 's/"downloadURL":"//g' | sed 's/",//g')
echo ${downloadURL}
else
echo "no"
fi
}
cmdhas() {
type "$1" > /dev/null 2>&1
}
download() {
if cmdhas "curl"; then
sudo 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 sudo wget $ARGS
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"
chmod +x /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