From d20394e0936019af461f123510e24da2c078dfec Mon Sep 17 00:00:00 2001 From: jolheiser Date: Tue, 9 Jul 2024 15:39:21 -0500 Subject: [PATCH] feat: improve SSH repo list Signed-off-by: jolheiser --- internal/ssh/wish.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/internal/ssh/wish.go b/internal/ssh/wish.go index 89fd6ef..7f4ae59 100644 --- a/internal/ssh/wish.go +++ b/internal/ssh/wish.go @@ -8,6 +8,7 @@ import ( "os" "path/filepath" "strings" + "text/tabwriter" "go.jolheiser.com/ugit/internal/git" @@ -104,10 +105,22 @@ func Middleware(repoDir string, cloneURL string, port int, gh Hooks) wish.Middle if err != nil && err != fs.ErrNotExist { log.Error("invalid repository", "error", err) } + tw := tabwriter.NewWriter(s, 0, 0, 1, ' ', 0) for _, de := range des { - fmt.Fprintln(s, de.Name()) - fmt.Fprintf(s, "\tgit clone %s/%s\n", cloneURL, de.Name()) + if filepath.Ext(de.Name()) != ".git" { + continue + } + repo, err := git.NewRepo(repoDir, de.Name()) + visibility := "❓" + if err == nil { + visibility = "🔓" + if repo.Meta.Private { + visibility = "🔒" + } + } + fmt.Fprintf(tw, "%[1]s\t%[3]s\t%[2]s/%[1]s.git\n", strings.TrimSuffix(de.Name(), ".git"), cloneURL, visibility) } + tw.Flush() } sh(s) }