diff --git a/setup.sh b/setup.sh index ce7fa4c..fb71fdf 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ # Check root if [ `whoami` != "root" ];then echo -e "\nYou need to be root to perform this command. \n" - exit 0 + exit 4 fi os=$(uname | tr '[:upper:]' '[:lower:]') @@ -11,8 +11,7 @@ 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 + if [[ "$os" == ${support_os[0]} || "$os" == ${support_os[1]} || "$os" == ${support_os[2]} ]]; then echo $os else echo "no" @@ -28,10 +27,6 @@ arch() { ;; "x86") out="386" ;; - # "armv7l") out="armv7l" - # ;; - # "amd64") out="amd64" - # ;; *) out=res ;; esac @@ -39,16 +34,12 @@ arch() { 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} +grepCross() { + local out=$(grep --version | grep -o "FreeBSD") + if [[ $out == "FreeBSD" ]]; then + echo $(grep -Eo "$@") else - echo "no" + echo $(grep -Po "$@") fi } @@ -58,7 +49,7 @@ cmdhas() { download() { if cmdhas "curl"; then - sudo curl --compressed -q "$@" + curl --compressed -q "$@" elif cmdhas "wget"; then # Emulate curl with wget ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ @@ -69,21 +60,43 @@ download() { -e 's/-o /-O /' \ -e 's/-C - /-c /') # shellcheck disable=SC2086 - eval sudo wget $ARGS + eval wget $ARGS + fi +} + +getLatestVersion() { + local platformValue=`platform` + + 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=`arch`\&platform=`platform`) + 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 + 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" - chmod +x /usr/local/dc-agent/bin/dc-agent + 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