Skip to content

Commit 8171fed

Browse files
committed
Move format list to long help in parse
1 parent fbc25a8 commit 8171fed

File tree

2 files changed

+32
-19
lines changed

2 files changed

+32
-19
lines changed

cmd/identify/identify.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package identify
22

33
import (
44
"fmt"
5+
"os"
56

67
"github.com/spf13/cobra"
78
"github.com/stilvoid/please"
@@ -14,7 +15,13 @@ var Cmd = &cobra.Command{
1415
Args: cobra.RangeArgs(0, 1),
1516
Run: func(cmd *cobra.Command, args []string) {
1617
data, err := internal.ReadFileOrStdin(args...)
17-
cobra.CheckErr(err)
18+
if err != nil {
19+
if len(args) == 0 {
20+
cmd.Help()
21+
os.Exit(1)
22+
}
23+
cobra.CheckErr(err)
24+
}
1825

1926
format, _, err := Identify(data)
2027
cobra.CheckErr(err)

cmd/parse/parse.go

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package parse
22

33
import (
44
"fmt"
5+
"os"
6+
"strings"
57

68
"github.com/jmespath/go-jmespath"
79
"github.com/spf13/cobra"
@@ -13,37 +15,41 @@ import (
1315
var inFormat string
1416
var outFormat string
1517
var query string
16-
var listMode bool
1718

1819
func init() {
19-
Cmd.Flags().StringVarP(&inFormat, "from", "f", "auto", "input format")
20-
Cmd.Flags().StringVarP(&outFormat, "to", "t", "auto", "output format")
20+
Cmd.Flags().StringVarP(&inFormat, "from", "f", "auto", "input format (see please help parse for formats)")
21+
Cmd.Flags().StringVarP(&outFormat, "to", "t", "auto", "output format (see please help parse for formats)")
2122
Cmd.Flags().StringVarP(&query, "query", "q", "", "JMESPath query")
22-
Cmd.Flags().BoolVarP(&listMode, "list", "l", false, "List available input and output types")
23+
24+
formats := strings.Builder{}
25+
formats.WriteString("Input formats:\n")
26+
for _, name := range please.Parsers {
27+
formats.WriteString(fmt.Sprintf(" %s\n", name))
28+
}
29+
formats.WriteString("\n")
30+
formats.WriteString("Output formats:\n")
31+
for _, name := range please.Formatters {
32+
formats.WriteString(fmt.Sprintf(" %s\n", name))
33+
}
34+
35+
Cmd.Long = "Parse and converted structured data from FILENAME or stdin if omitted.\n\n" + formats.String()
2336
}
2437

2538
var Cmd = &cobra.Command{
2639
Use: "parse (FILENAME)",
2740
Short: "Parse and convert structured data from FILENAME or stdin if omitted",
2841
Args: cobra.RangeArgs(0, 1),
2942
Run: func(cmd *cobra.Command, args []string) {
30-
if listMode {
31-
fmt.Println("Input formats:")
32-
for _, name := range please.Parsers {
33-
fmt.Printf(" %s\n", name)
34-
}
35-
fmt.Println()
36-
fmt.Println("Output formats:")
37-
for _, name := range please.Formatters {
38-
fmt.Printf(" %s\n", name)
43+
input, err := internal.ReadFileOrStdin(args...)
44+
if err != nil {
45+
if len(args) == 0 {
46+
fmt.Fprintln(os.Stderr, cmd.Short+"\n")
47+
cmd.Usage()
48+
os.Exit(1)
3949
}
40-
return
50+
cobra.CheckErr(err)
4151
}
4252

43-
// Read from stdin?
44-
input, err := internal.ReadFileOrStdin(args...)
45-
cobra.CheckErr(err)
46-
4753
// Try parsing
4854
var parsed any
4955

0 commit comments

Comments
 (0)