x/公共/开发环境.zsh

110 lines
3.7 KiB
Bash
Raw Permalink Normal View History

#!/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"
2024-03-19 23:57:50 +08:00
typeset -A 语言一GO=(
['组件']=('go' 'gofmt')
['下载地址']="https://golang.google.cn/dl/"
2024-03-19 23:57:50 +08:00
['版本正则']="go1.*linux-架构\.tar\.gz"
['旧世界版本']="go1.22.0"
)
#############################################################################
# 函数(func) #
#############################################################################
2024-03-19 23:57:50 +08:00
开发环境一检测一GO(){
# 检测安装情况
2024-03-19 23:57:50 +08:00
unset 下载地址
# 获取在线版本
2024-03-19 23:57:50 +08:00
版本一在线=$(curl -s ${语言一GO[下载地址]} | grep -o $(echo "${语言一GO[版本正则]}" | sed "s/架构/${言灵一系统架构}/g") | head -n 1)
语言一GO[下载地址]="${语言一GO[下载地址]}${版本一在线}"
2024-03-19 23:57:50 +08:00
if [[ ${系统一世界类型} == "旧世界" ]]; then
输出 4 "[GO检测]旧世界支持开发兼容性较差,建议尽快迁移进入龙芯新世界!"
2024-03-19 23:57:50 +08:00
版本一在线=${语言一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
}
2024-03-19 23:57:50 +08:00
# 用于检测当前版本是否最新
# 备注: 所有`开发环境一检测一*`返回0则代表无需更新,返回1则代表需要更新
2024-03-19 23:57:50 +08:00
# *-* -> 位置参数1 <- 需要检测的编程语言
开发环境一检测(){
}
# 加载主机信息
开发环境一初始化(){
2024-03-19 23:57:50 +08:00
if [[ ${言灵一系统一主机架构} == "龙" ]]; then
if [[ ${言灵一系统一世界类型} == "新世界" ]]; then
系统一主机架构="loong64"
fi
fi
2024-03-19 23:57:50 +08:00
系统一主机架构=${言灵一系统一主机架构}
}
开发环境一部署一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) #
###############################################################################
开发环境一初始化
2024-03-19 23:57:50 +08:00
开发环境一检测一GO
# 开发环境一部署一GO