@kyanny's blog

My thoughts, my life. Views/opinions are my own.

GitHub Enterprise Server のバージョン番号やリリースノート URL の一覧を取得する ghe-list コマンドを作った

github.com

仕事柄 2.21.x の x は何個あったっけとか 3.0.1 のリリースノートはどこだっけとか調べることがよくあるので検索しやすくなるようなツールを作った。主に Alfred Workflow から特定バージョンのリリースノート URL を開いたり、特定のシリーズのバージョン一覧を得たりするのに使う。

これもおれしか使わないと思う。


Deno と Alfred Workflow の Script Filter 用の JSON について学んだ。

  • Deno の cache ライブラリは Deno 自身が外部モジュールをキャッシュするのと同じ DENO_DIR にリソースをキャッシュする
  • DENO_DIR 環境変数を指定しない場合はプラットフォームごとに規定のディレクトリが使われる https://deno.land/manual/linking_to_external_code
    • macOS なら $HOME/Library/Caches/deno
  • この規定のキャッシュディレクトリは deno info で調べられる
$ deno info
DENO_DIR location: "/Users/kyanny/Library/Caches/deno"
Remote modules cache: "/Users/kyanny/Library/Caches/deno/deps"
Emitted modules cache: "/Users/kyanny/Library/Caches/deno/gen"
Language server registries cache: "/Users/kyanny/Library/Caches/deno/registries"
Origin storage: "/Users/kyanny/Library/Caches/deno/location_data"
  • deno info の出力はエスケープ文字を含むのでプログラムから処理するのは躊躇われる。--json オプションをつけると良い。
$ deno info --json
{
  "denoDir": "/Users/kyanny/Library/Caches/deno",
  "modulesCache": "/Users/kyanny/Library/Caches/deno/deps",
  "typescriptCache": "/Users/kyanny/Library/Caches/deno/gen",
  "registryCache": "/Users/kyanny/Library/Caches/deno/registries",
  "originStorage": "/Users/kyanny/Library/Caches/deno/location_data"
}
  • DENO_DIR のデフォルト値を Deno 実行中に知る方法は無い(探したけど見つからなかった。Deno.env.get('DENO_DIR') は空)。
  • Alfred Workflow の Script Filter に食わせる JSON で必須なのは "title" と "arg"
    • "title" がないと候補に出てこない
    • "arg" がないと次の Action や Output に値を渡せない