nerdtrack/cmd/add.go

49 lines
910 B
Go
Raw Normal View History

2021-12-05 17:46:53 +03:00
package cmd
import (
"strings"
"github.com/spf13/cobra"
)
// addCmd represents the add command
var addCmd = &cobra.Command{
Use: "add",
Short: "Add activity",
Long: `Add new activity that we can track`,
Run: func(cmd *cobra.Command, args []string) {
titles := []string{}
tags := []string{}
contexts := []string{}
for _, s := range args {
if len(s) == 0 {
continue
}
if s[0:1] == "#" {
if len(s[1:]) >= 1 {
tags = append(tags, s[1:])
continue
}
}
if s[0:1] == "@" {
if len(s[1:]) >= 1 {
contexts = append(contexts, s[1:])
continue
}
}
titles = append(titles, s)
}
title := strings.Join(titles, " ")
activityID, err := tr.Add(title, tags, contexts)
if err != nil {
cmd.PrintErr(err)
return
}
cmd.Printf("Activity #%d added! Now you can start it.\n", activityID)
},
}
func init() {
rootCmd.AddCommand(addCmd)
}