黄昏の迷宮

知的好奇心を刺激する冒険

pecoで便利に

昨今の「AI」というキーワードに惑わされて試してみようかなとVoidというエディターを使ってみることにしました。

普段使っているテキストエディターはVS Codeです。

VS Codeを使っているプロジェクトはghqで1つのディレクトリにまとめてpecoで移動するようにしているのですが、その中にVoidで編集しているプロジェクトを混ぜてしまうと使うエディターを間違ってしまうリスクが当然高くなります。

ということで指定したディレクトリー配下のサブディレクトリーのリストを表示するコマンドをGoで作ってみました。

package main

import (
 "fmt"
 "os"
 "path/filepath"
)

func main() {
 if len(os.Args) != 2 {
  return
 }
 baseDir := os.Args[1]
 entries, err := os.ReadDir(baseDir)
 if err != nil {
  return
 }
 for _, entry := range entries {
  if !entry.IsDir() {
   continue
  }
  dirPath := filepath.Join(baseDir, entry.Name())
  gitDir := filepath.Join(dirPath, ".git")
  info, err := os.Stat(gitDir)
  if err != nil || !info.IsDir() {
   continue
  }
  fmt.Println(dirPath)
 }
}

🔗GitHub: hyperdb/listGitDir

やっていることは単純で指定したディレクトリーの配下のサブディレクトリーのうち.gitディレクトリーが存在するものだけをリストアップするものです。

ビルドしてpecoで表示するまでを試してみましたが、とくに問題もなく使うことができました。こういう小さなツールを自作すると作業が快適になりますね。

ただ、pecoみたいな便利なツールに慣れてしまうといちいちcdコマンドで移動するとか面倒になってしまうので一概に良いこととは言えないかもしれませんが・・・。