ghqのルート設定を変えたらalfred-workflow-ghqが動かなくなった
こんにちは、バックエンドエンジニアの山口拓弥(@yamat47)です。
ようやくコロナ禍もちょっとずつ落ち着いてきましたね!
私は週末は Brandings というチームでアメフトをプレーしていますが、大会の開幕まで一ヶ月を切ってかなり緊張しています...。
主将としてのファーストシーズン、なんならコロナが再燃するまでの束の間の期間かもしれないので、雨にも日焼けにも負けず思いっきり取り組んでいます!
(写真は一昨年のものですが、寝っ転がっているのが私です)
とっても便利な CLI ツール ghq
さて、みなさんは ghq という CLI ツールを知っているでしょうか?
clone してきたローカルのリポジトリをとってもいい感じに管理してくれるツールで、peco などのフィルターと組み合わせて使っている方も多いと思います。
Rubyist の皆さんなら gem-src と組み合わせて、bundle install
するたびに Gem のソースコードを全部 ghq の管理下に置いていますかね。
ちょっとしたデバッグにとても強力なので、もしまだしていない方は gem-src の README や @koic さんのスライドを参考にぜひ一度試してみてください!
ghq + Alfred = ∞
そんな ghq ですが、ランチャーアプリの Alfred と組み合わせて使うとさらに強力なツールになります。
Alfred の workflow 機能を使うと「Alfred 起動 → ghq xxx
でリポジトリを選択する → すぐに Visual Studio Code で起動」という流れを滑らかに行うことができます。
workflow を自前で作ってもいいのですが、私は alfred-workflow-ghq を使っています。
最新リリースの ghq.alfredworkflow
ファイルをダウンロードして開くだけで使える、とっても手軽なパッケージなのが好きな理由です。
今回の記事はこの alfred-workflow-ghq を使うときのちょっとした tips の紹介です!
前提知識:ghq は起点となるディレクトリを自由に設定できる
詳しくは README を読んでいただくのがよいですが、ghq には clone してきたリポジトリをどこに配置するかを指定する仕組みが備わっています。
デフォルトは ~/ghq
ですが、さまざまな方法でこれを変えることができます。
私の場合は .gitconfig
を使って ~/src
をこの起点に設定しています。
┏╸~
┗╸❯❯❯ ghq root
/Users/takuya_yamaguchi/src
alfred-workflow-ghq はそのままだと ghq の起点の変更を適用してくれない
この辺りのコード を読むとわかりますが、alfred-workflow-ghq はとても素朴な shell script です。
また ghq
を呼び出すための PATH 設定すら書かれていることから分かる通り、Alfred の workflow が呼び出すシェルはユーザー設定が全く読み込まれていません。
このままだと ghq
コマンドはデフォルトの状態で呼び出されることになります。
すなわち ↑ で紹介した起点の変更は有効にならず、デフォルトの ~/ghq
を起点としてコマンドが実行されてしまいます。
これでは検索結果が常に空になってしまい、なんとも悲しいコマンドになってしまいます...。
(最後はもう諦めて Google 検索を勧めちゃってる... ググレカスってことかな...)
$GHQ_ROOT
を使って指定しちゃおう
起点の位置は ghq の起点の指定は環境変数(その名もズバリ $GHQ_ROOT
)を使って行うことができます。
起点の変更を適用するために、Alfred の workflow の設定をいじってこの環境変数も追加で読み込ませてしまいましょう。
Alfred の設定画面から「Workflows > alfred-workflow-ghq」を選ぶとこのような画面になります。
右上の [χ]
のボタンから環境変数の設定画面を開くことができます。
GHQ_ROOT
を追加して、Value に指定したい ghq の起点の位置を指定しましょう。
これで ghq
コマンドを呼び出すときに普段使っている起点の位置が使われるようになりました。
ghq on Alfred の仕組みの完成です!
(余談)プルリクも出しました
同じようにハマる人が少しでも減るように、この設定に気付きやすくするプルリクを作りました。
このプルリクがマージされてリリースされると、ワークフローの初期設定画面で GHQ_ROOT
の設定を書き換えられることに気付きやすくなります。
「alfred-workflow-ghq 動かない」とかでググる僕みたいな人が少しでも減るといいですね。
(2021年10月19日追記)
こちらのプルリクは無事にマージされて、リリースも追加されていました。
これで僕と同じようにハマる人が減るはず...!
開発環境の改善の旅はまだまだ続く...
今回はちょっとした tips として、ghq + Alfred な仕組みづくりで私がハマった問題とその解決策をお伝えしました。
クラッソーネでは、リポジトリへのアクセス方法に限らずさまざまな開発環境改善が大好きなエンジニアを大募集中です。
少しでも興味を持っていただけた方、ぜひ私とカジュアル面談でお話ししましょう!