Artenv
Repository: https://github.com/yano404/artenv/
解析環境の管理と切り替えを pyenv
や rbenv
のように簡単に実行するコマンド.
今のところ, bash
, zsh
に対応(csh
や fish
には対応してない).
Motivation
これまでは解析ごとに .bashrc
や .zshrc
の環境変数:
- 使っているArtemis, ROOTのバージョン
- Working directory
- ...etc
を書き換えて, shellを再起動していた. 色々な実験の解析を並行していると毎回これを実行するのは面倒である.
artenv
を使うことで, コマンド一つで解析の環境を切り替えることができる.
artenv shell <env-name>
次のコマンドでデフォルトで使用するものを指定することも可能.
artenv default <env-name>
- artemis, root関連の環境変数の切り替え
- ワーキングディレクトリへ移動する
acd
エイリアスの貼り直し
を行ってくれる.
Installation
git clone
するだけ.
git clone https://github.com/yano404/artenv.git ~/.artenv
Setup
.bashrc
, .zshrc
に次を追加する.
export ARTENV_ROOT="$HOME/.artenv"
export PATH="$ARTENV_ROOT/bin:$PATH"
eval "$(artenv init)"
shellを再起動 する.
exec $SHELL
artenv register-version
で使用しているArtemis, ROOTの情報を好きな名前で登録する.
path入力ではtab補完が働くようになっている.
$ artenv register-version <version-name>
Enter the path to artemis> /path/to/artemis
Enter the path to root> /path/to/root
Enter the path to yaml-cpp> /path/to/yaml-cpp
<version-name> was registered
artenv register-env
を使って解析環境の情報を適当な名前で登録する.
version登録同様, path入力ではtab補完が働くようになっている.
$ artenv register-env <env-name>
Select the artemis version
1) artemis-vXXX
2) artemis-vYYY
#? 2
artemis-vYYY was selected
Enter the path to working directory> /path/to/analysis_directory
Use artlogin? (y/n)> n
Enter the path to git repos (optional)> /path/to/git_repos or URL of git repos
<env-name> was registered
$ artenv register-version artemis-root-6.26.10
Enter the path to artemis> /home/quser/local/artemis/artemis-root-6.26.10
Enter the path to root> home/quser/local/root/v6.26.10
Enter the path to yaml-cpp> /home/quser/local/yaml-cpp/yaml-cpp-0.6.3/
artemis-root-6.26.10 was registered
$ artenv register-env h424
Select the artemis version
1) artemis-e559
2) artemis-root-6.26.10
#? 2
artemis-root-6.26.10 was selected
Enter the path to working directory> /home/yano/work/h424/art
Use artlogin? (y/n)> n
Enter the path to git repos (optional)> /path/to/artemis_h424.git
h424 was registered
ToDo
もしバグの報告, 機能追加のご要望があれば, ご連絡ください. GitHubのIssueも歓迎します.
-
artlogin
を使う環境の対応. -
artenv new
の実装.
Commands
artenv help
artenv
の簡単なhelpを表示する.
$ artenv help
Usage: artenv <command> <arg>
Commands:
ls Print the environment list
versions Print the artemis versions
version Print the current artemis version
info Print detail information of the environment
shell Set or show the activated environment in the current shell
default Set or show the default environment
init Configure the shell environment for artenv
--version Show the version of artenv
register-version Register a artemis version
register-env Register analysis environment
new Create the new working directory from templates
artenv versions
Artemisのバージョン一覧を表示する.
*
がついているものは現在セットされているバージョン.
$ artenv versions
artemis-e559
* artemis-root-6.26.10
artenv ls
解析環境の一覧を表示する.
*
がついているものは現在セットされている環境.
$ artenv ls
e559
* h424
artenv version
現在使用しているバージョンを表示する.
$ artenv version
artemis-root-6.26.10
artenv info
解析環境の詳細な情報を表示する. 引数が与えられなかった場合, 現在設定されている解析環境の情報が表示される.
$ artenv info h424
- env: h424
- artemis version: artemis-root-6.26.10
- artemis: /home/quser/local/artemis/artemis-root-6.26.10
- root: /home/quser/local/root/v6.26.10
- yaml-cpp: /home/quser/local/yaml-cpp/yaml-cpp-0.6.3/lib
- working directory: /home/yano/work/h424_23jan/art
artenv shell
引数が与えられなかった場合, 現在のshellで使用している環境を表示する.
環境名が引数として与えられた場合, 現在のshellの環境を切り替える.
$ artenv shell
h424
$ artenv shell e559
$ artenv shell
e559
artenv default
引数が与えられなかった場合, 現在のデフォルト環境を表示する.
環境名が引数として与えられた場合, デフォルトで使用する環境を設定する. (設定するだけで切り替えはしない)
$ artenv default
h424
$ artenv default e559
artenv register-version <version>
artemisのバージョンを登録する.
$ artenv register-version <version-name>
Enter the path to artemis> /path/to/artemis
Enter the path to root> /path/to/root
Enter the path to yaml-cpp> /path/to/yaml-cpp
<version-name> was registered
artenv register-env <env>
新たに解析環境を登録する.
$ artenv register-env <env-name>
Select the artemis version
1) artemis-vXXX
2) artemis-vYYY
#? 2
artemis-vYYY was selected
Enter the path to working directory> /path/to/analysis_directory
Use artlogin? (y/n)> n
Enter the path to git repos (optional)> /path/to/git_repos or URL of git repos
<env-name> was registered
artenv new <dir>
$ARTENV_ROOT/templates
にあるテンプレートから選択してワーキングディレクトリを作成する.
$ artenv new art
Select the templates
1) standard
#? 1
$ ls art
CMakeLists.txt conf/ macro/ output/ src/
README.md figs/ make.sh* prm/ steering/
artemislogon.C hist/ mapper.conf setbldprm.sh
artenv --version
artenv
のバージョンを表示する.
毎回バージョンを付けるのが面倒なので, gitのhashをそのままバージョンとしてい る.
$ artenv --version
artenv: 5043df4ffddf66c6b74dd941e9faa075ad9c1477