diff --git a/公共/开发环境.zsh b/公共/开发环境.zsh index 5e0e7c9..a35072b 100644 --- a/公共/开发环境.zsh +++ b/公共/开发环境.zsh @@ -31,6 +31,12 @@ typeset -A 语言一GO=( ['版本正则']="go1.*linux-架构\.tar\.gz" ['旧世界版本']="go1.22.0" ) +typeset -A 语言一RUST=( + ['组件']=('rustc' 'cargo') + ['下载地址']="http://ftp.loongnix.cn/toolchain/rust/rust-1.78/2024-05-06/abi1.0/" + ['版本正则']="rust.*-架构-unknown-linux-gnu\.tar\.gz" + ['旧世界版本']="1.78.0" +) ############################################################################# # 函数(func) # @@ -63,6 +69,32 @@ typeset -A 语言一GO=( 输出 2 "[GO检测]未检测到GO语言的本地版本" return 1 } +开发环境一检测一RUST(){ + # 检测安装情况 + # 获取在线版本 + 版本一在线=$(curl -s ${语言一RUST[下载地址]} | grep -o $(echo "${语言一RUST[版本正则]}" | sed "s/架构/${言灵一系统架构}/g") | head -n 1) + 语言一RUST[下载地址]="${语言一RUST[下载地址]}${版本一在线}" + if [[ ${系统一世界类型} == "旧世界" ]]; then + 输出 4 "[RUST检测]旧世界支持开发兼容性较差,建议尽快迁移进入龙芯新世界!" + 版本一在线=${语言一RUST[旧世界版本]} + 语言一RUST[下载地址]="${旧世界一下载地址}/toolchain/rust/${rust-版本一在线%.*}/2024-05-06/abi1.0/${rust-版本一在线}-loongarch64-unknown-linux-gnu.tar.gz " + fi + 输出 2 "[RUST检测]在线版本: ${版本一在线%.linux*}" + # 对比本地版本 + if [ -x "$(command -v rustc)" ]; then + 版本一本地="$(echo $(rustc version) | awk '{print $2}')" + # 判断版本新旧 + 输出 2 "[RUST检测]本地版本: ${版本一本地}" + if 版本对比 "${版本一本地}" "${版本一在线%.loongarch64*}"; then + 输出 2 "[RUST检测]发现新版本RUST" + return 1 + fi + 输出 2 "[RUST检测]已是最新的RUST版本" + return 0 + fi + 输出 2 "[RUST检测]未检测到RUST语言的本地版本" + return 1 +} # 用于检测当前版本是否最新 # 备注: 所有`开发环境一检测一*`返回0则代表无需更新,返回1则代表需要更新 @@ -106,4 +138,4 @@ typeset -A 语言一GO=( 开发环境一初始化 开发环境一检测一GO -# 开发环境一部署一GO +# 开发环境一部署一GO: