自動化開發環境的二部分
経緯 的中文释义是”经过”或者”历程”。
在mac、linux(如arch、ubuntu、debian)和windows(如wsl)上建立相同环境太麻烦的问题是起因。
请阅读以下链接中的”开发环境太麻烦的问题”详细了解。
请问有什么需要帮忙的?
以前的方法会在所有电脑上都安装上Haskell和Rust。
然后转换为环境变量
我创建了以下文件。
{
"languages": {
"haskell": {
"enable" : true
},
"rust": {
"enable" : true
},
"ruby": {
"enable": true,
"version": "3.0.1",
"modules": [
"solargraph"
]
},
"nodejs": {
"enable": true,
"version": "14.17.0",
"modules": []
},
"jvm": {
"enable": true,
"version": "11.0.10",
"modules": ["gradle"]
}
}
}
要将其设为环境变量
export RUBY_FLAG=$(cat ~/dotfiles/config.json | jq .languages.ruby.enable)
export RUBY_VER=$(cat ~/dotfiles/config.json | jq -r .languages.ruby.version)
export RUBY_MODULES=$(cat ~/dotfiles/config.json | jq -r .languages.ruby.modules\[\] | tr '\n' ' ' )
export NODE_FLAG=$(cat ~/dotfiles/config.json | jq .languages.nodejs.enable)
export NODE_VER=$(cat ~/dotfiles/config.json | jq -r .languages.nodejs.version)
export NODE_MODULES=$(cat ~/dotfiles/config.json | jq -r .languages.nodejs.modules\[\] | tr '\n' ' ')
export JVM_FLAG=$(cat ~/dotfiles/config.json | jq .languages.jvm.enable)
export JVM_VER=$(cat ~/dotfiles/config.json | jq -r .languages.jvm.version)
export JVM_MODULES=$(cat ~/dotfiles/config.json | jq -r .languages.jvm.modules\[\] | tr '\n' ' ')
export RUST_FLAG=$(cat ~/dotfiles/config.json | jq -r .languages.rust.enable)
export HASKELL_FLAG=$(cat ~/dotfiles/config.json | jq -r .languages.haskell.enable)
把环境设定脚本“enviroment.sh”呼叫出来。
举例来说,如果用java,就会变成这样
if [ $JVM_FLAG ]; then
curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh
if [ "$(uname)" == 'Darwin' ]; then
if [ "$(uname -m)" == 'arm64' ]; then
sdk install java $JVM_VER-zulu
else
sdk install java $JVM_VER.9-ms
fi
else
sdk install java $JVM_VER-ms
fi
sdk install $JVM_MODULES
fi
如果JVM_FLAG为false,则不进行安装,并根据不同的架构更改软件包,但版本都相同。目前支持的架构有ruby、nodejs、JVM、rust和haskell。
最后
我希望能够只需要在每台电脑上更改config.json文件,就能够创建环境。
我还是希望能够为dotfile创建一个框架。
如果有更酷的方式,请告诉我。