cli

goのflagパッケージは-xxxだけでなく--xxxにも対応していることを知った

-nameというオプションを持つようなコマンドを作ってみるとヘルプメッセージは以下の様になる。 $ go run main.go -h Usage of app: -name string name of person (default "foo") 素直にヘルプメッセージを読むと使えるのは、-name <value> と -name=<value> だけ。 実際</value></value>…

新しいgithub CLI toolのghコマンドが更新チェックをいつ行っているのか気になったので調べた

github.com 最近githubがhubの代わりにghという新しいgithub用のCLIツールを出していました。cli/cliという位置にあるので組織名とリポジトリ名がすごい。特等席。 例えばmacでは以下の様な形でインストールすると、このghコマンドが使える様になる。 $ brew…

goで設定ファイルを読み込むときに上書きしたい

goで設定ファイルを読み込むときに設定の一部だけを上書きしたいことがある。それ用のコードのメモ。 github.com mergo? mergoというのはけっこう古くからあるライブラリみたい。 A helper to merge structs and maps in Golang. Useful for configuration d…

最近のgoでCLIのコマンドを作るときの雛形のメモ (updated)

昔にも似たような記事を書いていたみたいだった。最近のgoでのCLIツールを書く際の心境の変化があったのでその辺をメモしておく。 最近goでCLIのコマンドを作るときの雛形のメモ 心境の変化 心境の変化は2つ コマンドラインオプションをstructで囲む理由が…

pythonでライブラリを使用せずにちょっとしたspinnerとprogress barを作る(CLI)

たまに欲しくなるのでメモ。やっていることはエスケープシークエンスでN行戻った行頭に移動して現在のカーソルから端末の終端までクリアを繰り返しているだけ。 progress bar ちょっとしたプログレスバーの表示。ふつうにやる分にはtqdmを使ったほうがお手軽…

pythonのCLIでリスト選択のUIにemacs/shell風のキーバインドを追加してみる

なんとなくCLIのツールを作ろうかと思って色々試してみていた。python-inquirerというものを発見したので使ってみていた。まだこれを常用するかは決めていない(元々inquirerはnode.js用のライブラリだった模様。それのpython版がこれ。yeomanなどに使われて…

最近goでCLIのコマンドを作るときの雛形のメモ

たまにどう書くか忘れて調べたりするので自分用の雛形をメモしておく。 kingpin だいたい自分でCLIのコマンドを作る場合には以下のようにしている。 使っているのはkingpin。とは言えこのパッケージにこだわりがあるというわけではなく。goのコマンドライン…

最近pythonでcliのコマンドを作る時にやっていること

最近cliのコマンドを作る時にやっていることをまとめてみる。ここでのコマンドは特にパッケージとして提供されるシェルなどから実行されるコマンドのことを指している。 何が問題? 特にパッケージの提供者とパッケージのユーザーの望みが全く乖離せず一致し…