cmlutils でタブ補完を有効にする

先日、CML2 を cmlutils で CML から操作する というメモを書きました。 cmlutils は便利ですが CLI のツールなのでコマンドを覚える必要があります。 以下の方法でタブ補完を行うことが出来ます。

1
eval "$(_CML_COMPLETE=bash_source cml)"

実際に cmlutils を venv 環境で利用する場合は以下のように実行するかと思います。

1
2
3
4
5
6
mkdir cml
cd cml
python -m venv .
source bin/activate
python -m pip install --upgrade pip setuptools
python -m pip install cmlutils

bin/activate へ下記を追加しておくことで、この venv 環境を利用する際は自動的に cmlutils のタブ補完が実行出来るようになります。

1
echo 'eval "$(_CML_COMPLETE=bash_source cml)"' >> bin/activate

実際のタブ補完実行例は以下の通りです。

1
2
3
4
5
6
(cml) [root@localhost cml]# cml
clear        down         ls           search       ui
cockpit      extract      nodes        ssh          up
command      generate     pull         start        use
console      id           rm           stop         version
definitions  license      save         telnet       wipe