メインコンテンツまでスキップ

Artenv

Repository: https://github.com/yano404/artenv/

解析環境の管理と切り替えを pyenvrbenv のように簡単に実行するコマンド.

今のところ, bash , zsh に対応(cshfish には対応してない).

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
Example
Artemis&ROOTの登録
$ 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を表示する.

Example
$ 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のバージョン一覧を表示する.

* がついているものは現在セットされているバージョン.

Example
$ artenv versions
artemis-e559
* artemis-root-6.26.10

artenv ls

解析環境の一覧を表示する.

* がついているものは現在セットされている環境.

Example
$ artenv ls
e559
* h424

artenv version

現在使用しているバージョンを表示する.

Example
$ artenv version
artemis-root-6.26.10

artenv info

解析環境の詳細な情報を表示する. 引数が与えられなかった場合, 現在設定されている解析環境の情報が表示される.

Example
$ 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の環境を切り替える.

Example
$ artenv shell
h424
$ artenv shell e559
$ artenv shell
e559

artenv default

引数が与えられなかった場合, 現在のデフォルト環境を表示する.

環境名が引数として与えられた場合, デフォルトで使用する環境を設定する. (設定するだけで切り替えはしない)

Example
$ 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 にあるテンプレートから選択してワーキングディレクトリを作成する.

Example
$ 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をそのままバージョンとしている.

Example
$ artenv --version
artenv: 5043df4ffddf66c6b74dd941e9faa075ad9c1477