#!/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` 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