110 lines
3.7 KiB
Bash
110 lines
3.7 KiB
Bash
#!/usr/bin/zsh
|
|
|
|
#####################################
|
|
# 自动配置常用开发环境 #
|
|
# [x] go #
|
|
# [x] rust #
|
|
# [ ] java #
|
|
# [ ] nodejs #
|
|
#####################################
|
|
|
|
# 不使用包管理器, 直接用官网的二进制包
|
|
# 龙芯旧世界更新频率低, 且迟早被弃用, 旧世界仅做有限支持
|
|
|
|
#############################################################################
|
|
# 变量 #
|
|
#############################################################################
|
|
|
|
# 加载基础环境
|
|
source $HOME/.config/xunmi/信息
|
|
# source $HOME/x/公共/函数.zsh
|
|
source ${言灵一路径}/x/公共/函数.zsh
|
|
路径一开发环境="${言灵一路径}/ide"
|
|
mkdir -p ${路径一开发环境}
|
|
|
|
# 配置全局变量
|
|
local 旧世界一下载地址="http://ftp.loongnix.cn"
|
|
|
|
typeset -A 语言一GO=(
|
|
['组件']=('go' 'gofmt')
|
|
['下载地址']="https://golang.google.cn/dl/"
|
|
['版本正则']="go1.*linux-架构\.tar\.gz"
|
|
['旧世界版本']="go1.22.0"
|
|
)
|
|
|
|
#############################################################################
|
|
# 函数(func) #
|
|
#############################################################################
|
|
|
|
开发环境一检测一GO(){
|
|
# 检测安装情况
|
|
unset 下载地址
|
|
# 获取在线版本
|
|
版本一在线=$(curl -s ${语言一GO[下载地址]} | grep -o $(echo "${语言一GO[版本正则]}" | sed "s/架构/${言灵一系统架构}/g") | head -n 1)
|
|
语言一GO[下载地址]="${语言一GO[下载地址]}${版本一在线}"
|
|
if [[ ${系统一世界类型} == "旧世界" ]]; then
|
|
输出 4 "[GO检测]旧世界支持开发兼容性较差,建议尽快迁移进入龙芯新世界!"
|
|
版本一在线=${语言一GO[旧世界版本]}
|
|
语言一GO[下载地址]="${旧世界一下载地址}/toolchain/golang/${版本一在线%.*}/abi1.0/${版本一在线}.linux-loong64.tar.gz"
|
|
fi
|
|
输出 2 "[GO检测]在线版本: ${版本一在线%.linux*}"
|
|
# 对比本地版本
|
|
if [ -x "$(command -v go)" ]; then
|
|
版本一本地="$(echo $(go version) | awk '{print $3}')"
|
|
# 判断版本新旧
|
|
输出 2 "[GO检测]本地版本: ${版本一本地}"
|
|
if 版本对比 "${版本一本地}" "${版本一在线%.linux*}"; then
|
|
输出 2 "[GO检测]发现新版本GO"
|
|
return 1
|
|
fi
|
|
输出 2 "[GO检测]已是最新的GO版本"
|
|
return 0
|
|
fi
|
|
输出 2 "[GO检测]未检测到GO语言的本地版本"
|
|
return 1
|
|
}
|
|
|
|
# 用于检测当前版本是否最新
|
|
# 备注: 所有`开发环境一检测一*`返回0则代表无需更新,返回1则代表需要更新
|
|
# *-* -> 位置参数1 <- 需要检测的编程语言
|
|
开发环境一检测(){
|
|
|
|
}
|
|
|
|
# 加载主机信息
|
|
开发环境一初始化(){
|
|
if [[ ${言灵一系统一主机架构} == "龙" ]]; then
|
|
if [[ ${言灵一系统一世界类型} == "新世界" ]]; then
|
|
系统一主机架构="loong64"
|
|
fi
|
|
fi
|
|
系统一主机架构=${言灵一系统一主机架构}
|
|
}
|
|
|
|
开发环境一部署一GO(){
|
|
输出 2 "开始从 ${语言一GO[下载地址]} 下载部署最新版go语言"
|
|
|
|
cd ${路径一开发环境}
|
|
获解 ${语言一GO[下载地址]}
|
|
echo "# [觅库]GO语言环境变量-1" >> $HOME/.zshrc
|
|
echo "export PATH=${路径一开发环境}/go/bin:\$PATH" >> $HOME/.zshrc
|
|
echo "export GOPATH=$HOME/.goenv" >> $HOME/.zshrc
|
|
source $HOME/.zshrc
|
|
go env -w GOPROXY=https://goproxy.cn
|
|
输出 0 "成功安装GO语言($(go version)), 并自动切换为国内GO语言下载源, 重启zsh生效!"
|
|
cd -
|
|
}
|
|
|
|
开发环境一部署(){
|
|
|
|
}
|
|
|
|
###############################################################################
|
|
# 主函数(main) #
|
|
###############################################################################
|
|
|
|
开发环境一初始化
|
|
|
|
开发环境一检测一GO
|
|
# 开发环境一部署一GO
|