Open28

remote にあげていない repo があるかを探したい

tkttkt

初期化したいとか、容量減らしたいとかの時に、「git push 忘れてたかも」みたいになってなかなか初期化に踏み切れない問題を解決したい

tkttkt

指定の dir だったりを探索して、git push していないとか、stash が残っているリポジトリを検知する
みたいなことがしたい

tkttkt

ちょっと脱線
https://qiita.com/shoma2da/items/117b2a0dc56ab52053e6

いつも gcd でリポジトリ移動をしていて、「alias の中身なんだっけ」となった
alias gcd で中身がわかるらしい

tkttkt
type gcd
gcd is a function with definition
# Defined in - @ line 1
function gcd --wraps='cd (ghq root)/(ghq list | fzf)' --description 'alias gcd=cd (ghq root)/(ghq list | fzf)'
  cd (ghq root)/(ghq list | fzf) $argv;
end
tkttkt

ghq と これの組み合わせと正規表現でいけそう

tkttkt

rust か何かで tool として作るか、
ただの shell script でやるか、

shell script でできそうな感じではある
rust でなんか書いてみたい気持ちもある
ghq との相性を考えると、go で書いたほうが良さげ
go 何もわからんけども

tkttkt
> ghq list
github.com/tkt-actions/add-issue-links
github.com/tktcorporation/chrome-extension-typescript-template
github.com/tktcorporation/dotfiles
github.com/tktcorporation/extended-spirit
github.com/tktcorporation/foam
tkttkt

引数に path を渡したら、それぞれに対してさっきのコマンドを実行してくれるってやれば良さそう

tkttkt

それでも git には依存するのか
それくらいの依存は command not found とか install git とか出せば良い話ではある

tkttkt

rust で作るのどうやるのか忘れてたので、昔作ったもので思い出してみる

tkttkt
> git-remind --path /home/tktcorporation/src/github.com/tktcorporation/* status -a
No help topic for '/home/tktcorporation/src/github.com/tktcorporation/dotfiles'

こんな感じで出てくる
よくわからん

tkttkt
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status
> ls /home/tktcorporation/src/github.com/tktcorporation
chrome-extension-typescript-template/  dotfiles/  extended-spirit/  foam/  youtube_to_m3u8/

どうして

tkttkt
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' repos
/home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
/home/tktcorporation/src/github.com/tktcorporation/dotfiles
/home/tktcorporation/src/github.com/tktcorporation/extended-spirit
/home/tktcorporation/src/github.com/tktcorporation/foam
/home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status

repository は取れるけど status はとれない

tkttkt
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' repos
/home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
/home/tktcorporation/src/github.com/tktcorporation/dotfiles
/home/tktcorporation/src/github.com/tktcorporation/extended-spirit
/home/tktcorporation/src/github.com/tktcorporation/foam
/home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status

repository は取れるけど status はとれない

tkttkt
git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/foam' status -a
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/foam

単体で呼んだら取れた?

tkttkt
git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status -a
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/dotfiles
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/extended-spirit
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/foam
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8

全部取れるようになった。
どうして

tkttkt

branch 別でも取得してくれたりするのかな

tkttkt

やりたいことができそうであれば、ここに ghq の repo を渡してあげればきれいに全部出そう