先日、SPMというコマンドラインツールをリリースしましたが、golangでコマンドラインツールを作成する上で便利だったツールや考え方等を備忘として残します。 CLIのベース 3rd Partyのライブラリを利用せずとも標準のflagパッケージで処理を書けますが、色々と面倒なのでurfave/cliのパッケージを利用しました。このパッケージは以下のように、簡単にサブコマンドやフラグを定義できます。 app := cli.NewApp() app.Name = "spm" app.Usage = "Salesforce Package Manager" app.Version = APP_VERSION app.Commands = []cli.Command{ { Name: "install", Aliases: []string{"i"}, Usage: "Install salesfo