GitHub のレポジトリから scoop 用の manifest を生成するツール: make-scoop-manifest。使い方として次の3種類があると説明をしていたが、分かりにくかった。
- レポジトリの場所は git remote show -n で取得し、ZIPファイルがローカルにある場合(コスト最小)
- レポジトリの場所はオプションで指定する場合
- ZIP ファイルがそもそも手元にない場合
これを 3. をデフォルトにする方向に変更した。
make-scoop-manifest {options...} [REPOSTITORY] {zip-files...}
-D
,-g
は明示的に書かなくてもよいものとした。- 互換性は維持しているため、別に書いてもよい(動作は変わらない)
- レポジトリの指定は基本引数で行う
- ZIPファイルは基本的にレポジトリからダウンロードする
- ローカルディスクの ZIP ファイルを与えることで、ダウンロードを省くこともできる(という説明にする)
結果:
make-scoop-manifest -g benhoyt/goawk -D > goawk.json
→make-scoop-manifest benhoyt/goawk > goawk.json
make-scoop-manifest -license MIT -D -g mattn/bsky -64 "" > bsky.json
→make-scoop-manifest -license MIT mattn/bsky -64 "" > bsky.json
と書けるようになった。コマンドライン的には -D
と -g
を省けるようになっただけだが、説明がシンプルで済むのが大きい。
一方、Makefile に組み込んで、ローカルディスクにある zip ベースでマニフェストを作る場合もまったく変わらない。
manifest: make-scoop-manifest *-windows-*.zip > $(NAME).json
余談: 偽"flag" パッケージを作った
make-scoop-manifest -license MIT mattn/bsky -64 ""
というコマンドラインは実は NG である。というのも、非オプション引数の "mattn/bsky" の後にオプション -64 を書いているからだ。標準の "flag" パッケージではこれは許されない。
だが、それだと単純に -D
と -g
を削除して、引数の順番を変えなければいけないことを失念したユーザを戸惑わせてしまう。
ということで、非オプション引数の後にもオプション引数を取れるバージョンの「偽"flag"パッケージ」を作って対応した。
String とBool だけしか使ってなかったから比較的簡単にできた。