From d27eca0a070cd679ed2a26cd5d49fe7fc10ef457 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 30 Sep 2025 23:49:23 +0100 Subject: [PATCH] Refactor Signed-off-by: Oliver Davies --- cmd/create.go | 4 +-- cmd/edit.go | 19 ++++++------ cmd/find.go | 9 +++--- cmd/links.go | 6 ++-- cmd/titles.go | 9 +++--- cmd/view.go | 19 ++++++------ internal/{lib/ansi.go => ansi/main.go} | 2 +- internal/{lib/config.go => config/main.go} | 2 +- internal/{lib/file.go => file/main.go} | 6 ++-- internal/{lib/fzf.go => fzf/main.go} | 2 +- internal/{lib/git.go => git/main.go} | 10 ++++--- internal/{lib/json.go => json/main.go} | 6 ++-- internal/{lib/zet.go => zet/main.go} | 34 ++++++++++++---------- 13 files changed, 71 insertions(+), 57 deletions(-) rename internal/{lib/ansi.go => ansi/main.go} (92%) rename internal/{lib/config.go => config/main.go} (83%) rename internal/{lib/file.go => file/main.go} (85%) rename internal/{lib/fzf.go => fzf/main.go} (97%) rename internal/{lib/git.go => git/main.go} (66%) rename internal/{lib/json.go => json/main.go} (84%) rename internal/{lib/zet.go => zet/main.go} (75%) diff --git a/cmd/create.go b/cmd/create.go index c9017ad..dbeafbe 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -5,7 +5,7 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var createCmd = &cobra.Command{ @@ -20,6 +20,6 @@ var createCmd = &cobra.Command{ title = strings.Join(args, " ") } - lib.CreateZet(title) + zet.CreateZet(title) }, } diff --git a/cmd/edit.go b/cmd/edit.go index 28a9ccd..110ff01 100644 --- a/cmd/edit.go +++ b/cmd/edit.go @@ -9,7 +9,8 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/fzf" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var editCmd = &cobra.Command{ @@ -29,32 +30,32 @@ zet edit|e latest var query string if args[0] == "latest" { - id = lib.GetLatestZet() + id = zet.GetLatestZet() - lib.EditZet(id) + zet.EditZet(id) os.Exit(0) } if id, err := strconv.Atoi(args[0]); err == nil { - lib.EditZet(id) + zet.EditZet(id) os.Exit(0) } query = args[0] - ids := lib.SearchZets(query) + ids := zet.SearchZets(query) if len(ids) == 1 { - lib.EditZet(ids[0]) + zet.EditZet(ids[0]) os.Exit(0) } - zets := lib.ParseZetList(ids) + zets := zet.ParseZetList(ids) - selected, err := lib.SelectWithFzf(zets) + selected, err := fzf.SelectWithFzf(zets) if err != nil { log.Fatalf("No zet selected.") @@ -68,6 +69,6 @@ zet edit|e latest log.Fatal(err) } - lib.EditZet(id) + zet.EditZet(id) }, } diff --git a/cmd/find.go b/cmd/find.go index cef1b27..16a5523 100644 --- a/cmd/find.go +++ b/cmd/find.go @@ -8,7 +8,8 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/json" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var findCmd = &cobra.Command{ @@ -25,12 +26,12 @@ If -j or --json is added, the results will be in JSON format.`, os.Exit(1) } - zets := lib.SearchZets(args[0]) + zets := zet.SearchZets(args[0]) - result := lib.ParseZetList(zets) + result := zet.ParseZetList(zets) if jsonOutput { - json, err := lib.AsJSON(result) + json, err := json.AsJSON(result) if err != nil { log.Fatal(err) diff --git a/cmd/links.go b/cmd/links.go index a31ffbd..20d64d2 100644 --- a/cmd/links.go +++ b/cmd/links.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var linksCmd = &cobra.Command{ @@ -22,9 +22,9 @@ var linksCmd = &cobra.Command{ os.Exit(1) } - zets := lib.SearchZets(args[0]) + zets := zet.SearchZets(args[0]) - lines := lib.ParseZetList(zets) + lines := zet.ParseZetList(zets) for _, line := range lines { line = strings.TrimSpace(line) diff --git a/cmd/titles.go b/cmd/titles.go index 53a8964..1f88073 100644 --- a/cmd/titles.go +++ b/cmd/titles.go @@ -7,7 +7,8 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/json" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var titlesCmd = &cobra.Command{ @@ -18,12 +19,12 @@ var titlesCmd = &cobra.Command{ If -j or --json is added, the results will be in JSON format.`, Run: func(cmd *cobra.Command, args []string) { - zets := lib.GetAllZets() + zets := zet.GetAllZets() - result := lib.ParseZetList(zets) + result := zet.ParseZetList(zets) if jsonOutput { - json, err := lib.AsJSON(result) + json, err := json.AsJSON(result) if err != nil { log.Fatal(err) diff --git a/cmd/view.go b/cmd/view.go index 2809087..d821b89 100644 --- a/cmd/view.go +++ b/cmd/view.go @@ -9,7 +9,8 @@ import ( "github.com/spf13/cobra" - "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/fzf" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/zet" ) var viewCmd = &cobra.Command{ @@ -29,32 +30,32 @@ zet view|v latest var query string if args[0] == "latest" { - id = lib.GetLatestZet() + id = zet.GetLatestZet() - fmt.Println(lib.ViewZet(id)) + fmt.Println(zet.ViewZet(id)) os.Exit(0) } if id, err := strconv.Atoi(args[0]); err == nil { - fmt.Println(lib.ViewZet(id)) + fmt.Println(zet.ViewZet(id)) os.Exit(0) } query = args[0] - ids := lib.SearchZets(query) + ids := zet.SearchZets(query) if len(ids) == 1 { - fmt.Println(lib.ViewZet(ids[0])) + fmt.Println(zet.ViewZet(ids[0])) os.Exit(0) } - zets := lib.ParseZetList(ids) + zets := zet.ParseZetList(ids) - selected, err := lib.SelectWithFzf(zets) + selected, err := fzf.SelectWithFzf(zets) if err != nil { log.Fatalf("No zet selected.") @@ -68,6 +69,6 @@ zet view|v latest log.Fatal(err) } - fmt.Println(lib.ViewZet(id)) + fmt.Println(zet.ViewZet(id)) }, } diff --git a/internal/lib/ansi.go b/internal/ansi/main.go similarity index 92% rename from internal/lib/ansi.go rename to internal/ansi/main.go index b5a29d7..1713b35 100644 --- a/internal/lib/ansi.go +++ b/internal/ansi/main.go @@ -1,4 +1,4 @@ -package lib +package ansi import "regexp" diff --git a/internal/lib/config.go b/internal/config/main.go similarity index 83% rename from internal/lib/config.go rename to internal/config/main.go index af8a161..c00c7d5 100644 --- a/internal/lib/config.go +++ b/internal/config/main.go @@ -1,4 +1,4 @@ -package lib +package config import "os" diff --git a/internal/lib/file.go b/internal/file/main.go similarity index 85% rename from internal/lib/file.go rename to internal/file/main.go index 77781e7..0f17bc4 100644 --- a/internal/lib/file.go +++ b/internal/file/main.go @@ -1,8 +1,10 @@ -package lib +package file import ( "fmt" "os" + + "code.oliverdavies.uk/opdavies/cmd-zet/internal/lib" ) func EditFile(filePath string) { @@ -13,7 +15,7 @@ func EditFile(filePath string) { editor := os.Getenv("EDITOR") - err := Exec(editor, filePath) + err := lib.Exec(editor, filePath) if err != nil { fmt.Println(err) diff --git a/internal/lib/fzf.go b/internal/fzf/main.go similarity index 97% rename from internal/lib/fzf.go rename to internal/fzf/main.go index ebccab9..1b46697 100644 --- a/internal/lib/fzf.go +++ b/internal/fzf/main.go @@ -1,4 +1,4 @@ -package lib +package fzf import ( "bytes" diff --git a/internal/lib/git.go b/internal/git/main.go similarity index 66% rename from internal/lib/git.go rename to internal/git/main.go index 4ffb8a2..1cae370 100644 --- a/internal/lib/git.go +++ b/internal/git/main.go @@ -1,9 +1,11 @@ -package lib +package git import ( "os" "os/exec" "strconv" + + "code.oliverdavies.uk/opdavies/cmd-zet/internal/config" ) func CommitZettel(id int, title string) { @@ -14,8 +16,8 @@ func CommitZettel(id int, title string) { runGitCommand("push") } -func execGitCommand(parts ...string) (string, error) { - args := append([]string{"-C", GetZetDir()}, parts...) +func ExecGitCommand(parts ...string) (string, error) { + args := append([]string{"-C", config.GetZetDir()}, parts...) command := exec.Command("git", args...) output, err := command.CombinedOutput() @@ -24,7 +26,7 @@ func execGitCommand(parts ...string) (string, error) { } func runGitCommand(parts ...string) { - args := append([]string{"-C", GetZetDir()}, parts...) + args := append([]string{"-C", config.GetZetDir()}, parts...) command := exec.Command("git", args...) command.Stderr = os.Stderr diff --git a/internal/lib/json.go b/internal/json/main.go similarity index 84% rename from internal/lib/json.go rename to internal/json/main.go index 074b6f6..65ba5fa 100644 --- a/internal/lib/json.go +++ b/internal/json/main.go @@ -1,10 +1,12 @@ -package lib +package json import ( "encoding/json" "fmt" "strconv" "strings" + + "code.oliverdavies.uk/opdavies/cmd-zet/internal/ansi" ) type Item struct { @@ -16,7 +18,7 @@ func AsJSON(zets []string) (string, error) { var items []Item for _, entry := range zets { - cleanEntry := StripANSI(entry) + cleanEntry := ansi.StripANSI(entry) parts := strings.SplitN(cleanEntry, " ", 2) id, _ := strconv.Atoi(parts[0]) diff --git a/internal/lib/zet.go b/internal/zet/main.go similarity index 75% rename from internal/lib/zet.go rename to internal/zet/main.go index f75f7f4..1bc2dd0 100644 --- a/internal/lib/zet.go +++ b/internal/zet/main.go @@ -1,4 +1,4 @@ -package lib +package zet import ( "bufio" @@ -11,46 +11,50 @@ import ( "sort" "strconv" "strings" + + "code.oliverdavies.uk/opdavies/cmd-zet/internal/config" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/file" + "code.oliverdavies.uk/opdavies/cmd-zet/internal/git" ) func CreateZet(title string) { zid := newZid() - path := path.Join(GetZetDir(), strconv.Itoa(zid)) + path := path.Join(config.GetZetDir(), strconv.Itoa(zid)) os.Mkdir(path, 0750) filePath := fmt.Sprintf("%s/index.adoc", path) - file, err := os.Create(filePath) + f, err := os.Create(filePath) if err != nil { log.Fatal(err) } - defer file.Close() + defer f.Close() - _, err = fmt.Fprintf(file, "= %s", title) + _, err = fmt.Fprintf(f, "= %s", title) if err != nil { log.Fatal(err) } - EditFile(filePath) + file.EditFile(filePath) onSave(zid) } func EditZet(id int) { - zetPath := path.Join(GetZetDir(), strconv.Itoa(id), "index.adoc") + zetPath := path.Join(config.GetZetDir(), strconv.Itoa(id), "index.adoc") - EditFile(zetPath) + file.EditFile(zetPath) onSave(id) } func GetAllZets() []int { - zets, err := execGitCommand("ls-files") + zets, err := git.ExecGitCommand("ls-files") if err != nil { log.Println(err) @@ -87,7 +91,7 @@ func GetLatestZet() int { } func SearchZets(query string) []int { - zets, err := execGitCommand("grep", "-i", "--name-only", "--word-regex", query) + zets, err := git.ExecGitCommand("grep", "-i", "--name-only", "--word-regex", query) if err != nil { fmt.Printf("No matches found for %s.\n", query) @@ -135,9 +139,9 @@ func ParseZetList(ids []int) []string { } func ViewZet(id int) string { - zetPath := path.Join(GetZetDir(), strconv.Itoa(id), "index.adoc") + zetPath := path.Join(config.GetZetDir(), strconv.Itoa(id), "index.adoc") - return ViewFile(zetPath) + return file.ViewFile(zetPath) } func getTitle(id int) string { @@ -145,7 +149,7 @@ func getTitle(id int) string { } func getTitleFromFile(filePath string) string { - filePath = path.Join(GetZetDir(), filePath) + filePath = path.Join(config.GetZetDir(), filePath) file, err := os.Open(filePath) @@ -173,7 +177,7 @@ func getTitleFromFile(filePath string) string { } func newZid() int { - cmd := exec.Command("ls", GetZetDir()) + cmd := exec.Command("ls", config.GetZetDir()) output, _ := cmd.CombinedOutput() zets := strings.Split(string(output), "\n") @@ -193,7 +197,7 @@ func newZid() int { func onSave(id int) { title := getTitle(id) - CommitZettel(id, title) + git.CommitZettel(id, title) // TODO: Or delete the file if empty. }