diff options
| author | eltrac <hi@eltr.ac> | 2026-03-04 10:58:37 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-03-04 10:58:37 +0800 |
| commit | ffc0c726a4736d3b0b837582fe145bff0e58366d (patch) | |
| tree | 0d121065c234b78f9d8c5e5365753bcfe7174b38 /model.go | |
| parent | 29f4c1351095bbc019f0c8b21638f6f7d5f65fa6 (diff) | |
refactor: rename model -> model_drafts
Diffstat (limited to 'model.go')
| -rw-r--r-- | model.go | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/model.go b/model.go deleted file mode 100644 index c796e98..0000000 --- a/model.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "encoding/csv" - "os" - "os/exec" - "strings" - - tea "charm.land/bubbletea/v2" -) - -type model struct { - choices [][]string - cursor int - selected map[int]struct{} -} - -func initialModel() model { - out, err := exec.Command("hugo", "list", "drafts").Output() - if err != nil { - println("Error fetching Hugo drafts: Is this a Hugo site? Is Hugo installed?") - os.Exit(1) - } - - csvReader := csv.NewReader(strings.NewReader(string(out))) - records, err := csvReader.ReadAll() - if err != nil { - println("Error parsing draft list.") - os.Exit(1) - } - if len(records) <= 1 { - println("No drafts found.") - os.Exit(1) - } - - return model{ - choices: records, - selected: make(map[int]struct{}), - } -} - -func (m model) Init() tea.Cmd { - return nil -} - -func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - switch msg := msg.(type) { - case tea.KeyPressMsg: - switch msg.String() { - case "ctrl+c", "q": - return m, tea.Quit - case "up", "k": - if m.cursor > 0 { - m.cursor-- - } - case "down", "j": - if m.cursor < len(m.choices)-1 { - m.cursor++ - } - case "enter": - choice := m.choices[m.cursor] - path := choice[0] - return m, openEditor(path) - case "space": - _, ok := m.selected[m.cursor] - if ok { - delete(m.selected, m.cursor) - } else { - m.selected[m.cursor] = struct{}{} - } - } - case editorFinishedMsg: - return m, tea.Quit - } - return m, nil -} |
