あとで Quyo | つづろう、モノの思い出 にも供養します
先日 ghqで仕事用と趣味用でディレクトリ分けしてリポジトリ管理しやすくなりました | おそらくはそれさえも平凡な日々 で発表されていましたが、ghq version 0.99.0 より、 ghq look
コマンドが廃止となりました。
廃止の経緯などは上述の id:Songmu さんの記事に書かれていますが、僕もどちらかというと「普段使いに ghq look
を使う」人間でした。
様々な「こうしたほうがいい」「王道」「回避策」などがありますが、ここではその辺りには触れずに、 ghq look
利用時に「 ghq look
で開いたサブシェルかどうか」を判定していた方法を供養しておきます。
やってたこと
いたってシンプルなのですが、 ghq look
で開かれたサブシェルの時は、環境変数 GHQ_LOOK
が ghq.root
以下の移動先パスになります。
それを検知して、ghq look
配下時には PS1 先頭に [g]
と出すようにしていました。
if [ "X${GHQ_LOOK}" != "X" ];then ghq_flag="[g]" fi PS1='\[\e[31;40m\]${ghq_flag}\[\e[m\]\[\e[36;40;4m\][bash] \u@\h:\W\[\e[m\]\[\e[31;40m\]$(__git_ps1 " (%s)") \[\e[m \]\$ '
実際に使うとこんな感じ
[bash] do-su-0805@hostname:~ $ ghq get --look do-su-0805/repoA exists /Users/do-su-0805/.ghq/src/github.com/do-su-0805/repoA [g][bash] do-su-0805@hostname:repoA (master) $
ある意味「サブシェルによって環境変数が引き継がれないこと」を便利に使っていたので、 ghq get --look
を継続して使うかは悩みどころですが、まぁいい感じにしていきたいですね。
ちなみに
id:astj さんも同様のことをされていたらしいというのは調べていて見つけました。
対する id:Songmu さんの応答で ghq get --look
で同等の動作をすることを知りました。
なるほどね。一応、ghq get -look <repo> が同様の挙動をします。
— songmu (@songmu) 2020年1月5日