cmd-zet/internal/zet/create.go
Oliver Davies 948872b933 Refactor
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-04 02:21:28 +01:00

60 lines
897 B
Go

package zet
import (
"fmt"
"log"
"os"
"os/exec"
"path"
"strconv"
"strings"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/config"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/file"
)
func CreateZet(title string) {
zid := newZid()
path := path.Join(config.GetZetDir(), strconv.Itoa(zid))
os.Mkdir(path, 0750)
filePath := fmt.Sprintf("%s/index.adoc", path)
f, err := os.Create(filePath)
if err != nil {
log.Fatal(err)
}
defer f.Close()
_, err = fmt.Fprintf(f, "= %s", title)
if err != nil {
log.Fatal(err)
}
file.Edit(filePath)
onSave(zid)
}
func newZid() int {
cmd := exec.Command("ls", config.GetZetDir())
output, _ := cmd.CombinedOutput()
zets := strings.Split(string(output), "\n")
var zetCount int
for _, zet := range zets {
num, err := strconv.Atoi(zet)
if err == nil && num > zetCount {
zetCount = num
}
}
return zetCount + 1
}