cmd-zet/internal/cli/titles.go
Oliver Davies 7b6712e05a Refactor
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-05 01:01:38 +01:00

49 lines
964 B
Go

package cli
import (
"fmt"
"log"
"strings"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/json"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/zet"
"github.com/spf13/cobra"
)
var titlesCmd = &cobra.Command{
Use: "titles",
Aliases: []string{"t"},
Short: "Print IDs and titles of zettels",
Long: `Print the IDs and titles of all zettels.
If -j or --json is added, the results will be in JSON format.`,
Run: func(cli *cobra.Command, args []string) {
zets := zet.GetAllZets()
if jsonOutput {
zetList := zet.NewZetList(zets, false)
result := zetList.Parse()
json, err := json.AsJSON(result)
if err != nil {
log.Fatal(err)
}
fmt.Println(json)
} else {
zetList := zet.NewZetList(zets)
result := zetList.Parse()
fmt.Println(strings.Join(result, "\n"))
}
},
}
func init() {
rootCmd.AddCommand(titlesCmd)
titlesCmd.Flags().BoolVarP(&jsonOutput, "json", "j", false, "Output results in JSON format")
}