トップ «前の日記(2025/06/17 (火) ) 最新 次の日記(2025/06/19 (木) )» 編集 RSS feed

HsbtDiary


2025/06/18 (水) [長年日記]

git-goget というツールを作った

ghq が macOS 26 で動かなくて golang だしデバッグもわからん...ってなったので ghq get 相当を実行する git goget というコマンドを copilot で作らせた。今回は Ruby じゃなくてシェルにした。

https://github.com/hsbt/git-goget

冗長なところはまあまああるのだろうけど

$ set -x GIT_GOGET_ROOT=~/Documents
$ git goget https://github.com/rails/rails

で、~/Documents の下に org/repo という形で clone できるし、git goget --update~/Documents の下を全て git pull するということもできるので十分な感じだった。大変便利。

fish で Ctrl+g で ghq 的なリポジトリを絞り込み

macOS 26 で ghq list も動かなくなってしまったので、Ctrl+g でのリポジトリ絞り込みができなくてどうしたもんかなと考えて、素朴に普段使ってるツールで以下のように書き換えてしまった。

function __cd_repository
  set repo_path (fd . $GIT_GOGET_ROOT -t d --max-depth 3 | sk)
  cd $repo_path
  commandline -f repaint
end
bind \cg '__cd_repository'

fd や sk を使って必要最小限で実現できたので fisher で fish-ghq プラグインなどを消すこともできてよかった気がする。

rdoc の依存から psych が消えていたのを直した

ruby-dev こと 3.5 の開発版をインストールしたら rdoc の依存関係として psych が消えているという報告があったので調べて直した。

https://bugs.ruby-lang.org/issues/21312

この手の依存関係がなくなります、というのは流石にもうこの辺かな、というあたりがついているので調べていくと rdoc の gem ファイルに gemspec が含まれておらず、テスト用に依存関係を加工した gemspec を使っているというのが原因だった。

https://github.com/ruby/rdoc/pull/1379

サクッと rdoc 側に gem に含めるように変更しつつ、Dir.glob だと動かないというのもついでに変更しておいた。これを ruby/ruby 側でテストするときに気がついたけど、rdoc は gem を作るときに markdown.rb などを生成するので、テスト用にリポジトリから git で直接持ってくると動かないようだった。うーむ。

しょうがないので、新しいバージョンをリリースしてなんとかなったけど、開発中の Ruby で任意の rdoc のコミットを指定してテストができないというのは不便なので継続課題、って感じで。