Create a new zettel with a given title
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
This commit is contained in:
parent
59c4d132b2
commit
b2f7f7af7f
3 changed files with 78 additions and 0 deletions
32
cmd/create.go
Normal file
32
cmd/create.go
Normal file
|
@ -0,0 +1,32 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"code.oliverdavies.uk/opdavies/cmd-zet/internal/lib"
|
||||
)
|
||||
|
||||
var createCmd = &cobra.Command{
|
||||
Use: "create",
|
||||
Aliases: []string{"e"},
|
||||
Short: "A brief description of your command",
|
||||
Long: `A longer description that spans multiple lines and likely contains examples
|
||||
and usage of using your command. For example:
|
||||
|
||||
Cobra is a CLI library for Go that empowers applications.
|
||||
This application is a tool to generate the needed files
|
||||
to quickly create a Cobra application.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
title := ""
|
||||
if len(args) > 0 {
|
||||
title = strings.Join(args, " ")
|
||||
}
|
||||
|
||||
lib.CreateZet(title)
|
||||
|
||||
// TODO: Edit the file
|
||||
// TODO: Commit the changes
|
||||
},
|
||||
}
|
|
@ -31,6 +31,7 @@ func Execute() {
|
|||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(createCmd)
|
||||
rootCmd.AddCommand(editCmd)
|
||||
rootCmd.AddCommand(findCmd)
|
||||
rootCmd.AddCommand(titlesCmd)
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"regexp"
|
||||
"sort"
|
||||
|
@ -12,6 +13,32 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func CreateZet(title string) {
|
||||
zid := newZid()
|
||||
|
||||
fmt.Println(title, zid)
|
||||
|
||||
path := path.Join(GetZetDir(), strconv.Itoa(zid))
|
||||
|
||||
os.Mkdir(path, 0750)
|
||||
|
||||
filePath := fmt.Sprintf("%s/index.adoc", path)
|
||||
|
||||
file, err := os.Create(filePath)
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
defer file.Close()
|
||||
|
||||
_, err = fmt.Fprintf(file, "= %s", title)
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func EditZet(id int) {
|
||||
zetPath := path.Join(GetZetDir(), strconv.Itoa(id), "index.adoc")
|
||||
|
||||
|
@ -139,6 +166,24 @@ func getTitleFromFile(filePath string) string {
|
|||
return ""
|
||||
}
|
||||
|
||||
func newZid() int {
|
||||
cmd := exec.Command("ls", 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
|
||||
}
|
||||
|
||||
func onSave(id int) {
|
||||
title := getTitle(id)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue