mkr hosts にコントリビュートした話
こちらでリリースの紹介があったmkrコマンドに一つコントリビュートしておりました。
リリースされたのは、mkr v0.41.0
です。
一つ前のバージョンまで mkr hosts は検索結果が一台もないと、null
が返っていました。
$ mkr hosts --service all-working-service --status poweroff null
これだと、jq
コマンドで何かしら処理するのが面倒。とあるスクリプトでは以下のようにしていました。
HOSTS=$(mkr hosts --service all-working-service --status poweroff) if [ "${HOSTS}" == "null" ]; then HOSTS="[]" fi for _ID in $(echo "$HOSTS"| jq -c -r '.[].id') do ... done
これだとやっぱり面倒ということで、Pullrequestを作って、マージしていただきました。
実質的なdiffはこれだけ
diff --git a/hosts/app.go b/hosts/app.go index 4778db1..3c41be7 100644 --- a/hosts/app.go +++ b/hosts/app.go @@ -54,7 +54,7 @@ func (ha *hostApp) findHosts(param findHostsParam) error { case param.verbose: return format.PrettyPrintJSON(ha.outStream, hosts) default: - var hostsFormat []*format.Host + hostsFormat := make([]*format.Host, 0) for _, host := range hosts { hostsFormat = append(hostsFormat, &format.Host{ ID: host.ID,
sliceをvarではなくmakeで作成することで、nil sliceにならず、Marshal時に null
ではなく意図通り []
として出力されました。
これで楽ができます。