[続編]aliasを登録するラッパーコマンド書いた

記事概要

昨日ブログに書いてたaliasを楽に登録する方法(よく使うコマンドを楽にalias登録する)だと
バッチ処理には良いのだけど、

「あ、これ登録しとこう」

っていうときにフランクに登録できないので、フランクに登録出来るコマンド作った。

使い方

README.me通りインストールして頂いたら、

オプションなしだと登録されている設定が表示されます。

# am
current commands of the config

 1 : test    = 'ls -la'
 2 : geminst = 'gem install am'

追加は2パターン設けていて、オプション無しだと直近に叩いたコマンドを登録出来ます。

# cd /hoge
# am add
add command is 'cd /hoge'
please input add command alias: 

-l [list]をつけて実行すると直近5件の中から登録することが出来ます。

# am add -l
1: am del -l
2: am add -l
3: cat /root/.am_config
4: am
5: am del geminst
please input add command number: 1
please input add command alias: amdel

[success] amdel / 'am del -l' added command
please run: [ source /root/.am_config ]

削除も名前指定、リスト選択可能としています。

# am     
current commands of the config

 1 : test  = 'ls -la'
 2 : a     = 'am'
 3 : amdel = 'am del -l'

# am del test

[success] delete alias test
please run: [ source /root/.am_config ]

# am del -l
current commands of the config

 1 : a     = 'am'
 2 : amdel = 'am del -l'

please input delete command number: 1

[success] delete alias a
please run: [ source /root/.am_config ]

出来なかったっぽいこと

今回Rubyのthorというgemを使って実装しました。
困ったのがhistoryとかaliasなどのシェルビルドインコマンドを叩いても、
コマンドが走るシェルプロセスとコマンドを叩いたシェルプロセスが分離しているっぽくて
同じセッションで値をとったり、反映することが出来なかったです。

gdb噛ませて無理やりプロセスにアタッチすることも考えたのですが、
少々お行儀が悪い気がしたので、設定ファイルを読み込む形式にしています。

多分便利だと思うので、よければ使ってみてください。