2
0

go-install.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/bin/bash
  2. # Author: Jrohy
  3. # Github: https://github.com/Jrohy/go-install
  4. # cancel centos alias
  5. [[ -f /etc/redhat-release ]] && unalias -a
  6. INSTALL_VERSION=""
  7. #######color code########
  8. RED="31m"
  9. GREEN="32m"
  10. YELLOW="33m"
  11. BLUE="36m"
  12. FUCHSIA="35m"
  13. colorEcho(){
  14. COLOR=$1
  15. echo -e "\033[${COLOR}${@:2}\033[0m"
  16. }
  17. #######get params#########
  18. while [[ $# > 0 ]];do
  19. KEY="$1"
  20. case $KEY in
  21. -v|--version)
  22. INSTALL_VERSION="$2"
  23. echo -e "准备安装$(colorEcho ${BLUE} $INSTALL_VERSION)版本golang..\n"
  24. shift
  25. ;;
  26. *)
  27. # unknown option
  28. ;;
  29. esac
  30. shift # past argument or value
  31. done
  32. #############################
  33. ipIsConnect(){
  34. ping -c2 -i0.3 -W1 $1 &>/dev/null
  35. if [ $? -eq 0 ];then
  36. return 0
  37. else
  38. return 1
  39. fi
  40. }
  41. setupEnv(){
  42. if [[ -z `echo $PATH|grep /usr/lib/go/bin` ]];then
  43. echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
  44. fi
  45. if [[ -z `echo $GOPATH` ]];then
  46. while :
  47. do
  48. read -p "默认GOPATH路径: `colorEcho $BLUE /home/go`, 回车直接使用或者输入自定义绝对路径:" GOPATH
  49. if [[ $GOPATH ]];then
  50. if [[ ${GOPATH:0:1} != "/" ]];then
  51. colorEcho $YELLOW "请输入绝对路径!"
  52. continue
  53. fi
  54. else
  55. GOPATH="/home/go"
  56. fi
  57. break
  58. done
  59. echo "GOPATH值为: `colorEcho $BLUE $GOPATH`"
  60. echo 'export GOPATH=$GOPATH' >> /etc/profile
  61. fi
  62. source /etc/profile
  63. }
  64. setupProxy(){
  65. ipIsConnect "www.google.com"
  66. if [[ ! $? -eq 0 ]]; then
  67. [[ -z $(grep GO111MODULE ~/.bashrc) ]] && echo "export GO111MODULE=on" >> ~/.bashrc
  68. [[ -z $(grep GOPROXY ~/.bashrc) ]] && echo "export GOPROXY=https://goproxy.io" >> ~/.bashrc
  69. colorEcho $GREEN "当前VPS为国内VPS(无法访问谷歌), 成功设置goproxy代理!"
  70. source ~/.bashrc
  71. fi
  72. }
  73. installGo(){
  74. if [[ -z $INSTALL_VERSION ]];then
  75. INSTALL_VERSION=`curl -s https://github.com/golang/go/releases|grep releases/tag|grep -o "[0-9].*[0-9]"|head -n 1`
  76. fi
  77. FILE_NAME="go${INSTALL_VERSION}.linux-amd64.tar.gz"
  78. curl -L https://dl.google.com/go/$FILE_NAME -o $FILE_NAME
  79. [[ -e /usr/local/go ]] && rm -rf /usr/local/go
  80. tar -C /usr/local -xzf $FILE_NAME
  81. }
  82. main(){
  83. installGo
  84. setupEnv
  85. setupProxy
  86. echo -e "golang `colorEcho $BLUE $INSTALL_VERSION` 安装成功!"
  87. }
  88. main