diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/index.go | 2 | ||||
| -rw-r--r-- | cmd/query.go | 44 |
2 files changed, 42 insertions, 4 deletions
diff --git a/cmd/index.go b/cmd/index.go index 2f18fe0..dde9550 100644 --- a/cmd/index.go +++ b/cmd/index.go @@ -36,7 +36,7 @@ func setupIndexFlags(args []string, fs *flag.FlagSet, flags *IndexFlags) { fs.Usage = func() { f := fs.Output() fmt.Fprintf(f, "Usage of %s %s\n", os.Args[0], fs.Name()) - fmt.Fprintf(f, "\t%s [global-flags] %s [index-flags] <subcommand>\n\n", os.Args[0], fs.Name()) + fmt.Fprintf(f, " %s [global-flags] %s [index-flags] <subcommand>\n\n", os.Args[0], fs.Name()) fmt.Fprintln(f, "Subcommands:") fmt.Fprintln(f, "build - create a new index") fmt.Fprintln(f, "update - update an existing index") diff --git a/cmd/query.go b/cmd/query.go index a2ac5a4..649b9ea 100644 --- a/cmd/query.go +++ b/cmd/query.go @@ -12,6 +12,8 @@ import ( type QueryFlags struct { Outputer query.Outputer + DocumentSeparator string + ListSeparator string CustomFormat string OptimizationLevel int } @@ -28,17 +30,53 @@ func setupQueryFlags(args []string, fs *flag.FlagSet, flags *QueryFlags, dateFor flags.Outputer = query.JsonOutput{} return nil case "pathonly": - flags.Outputer, _ = query.NewCustomOutput("%p", dateFormat) + flags.Outputer, _ = query.NewCustomOutput("%p", dateFormat, "\n", "") return nil case "custom": var err error - flags.Outputer, err = query.NewCustomOutput(flags.CustomFormat, dateFormat) + flags.Outputer, err = query.NewCustomOutput(flags.CustomFormat, dateFormat, flags.DocumentSeparator, flags.ListSeparator) return err } return fmt.Errorf("Unrecognized output format: %s", arg) }) - fs.StringVar(&flags.CustomFormat, "outCustomFormat", query.DefaultOutputFormat, "format string for --outFormat custom, see EXAMPLES for more details") + fs.StringVar(&flags.CustomFormat, "outCustomFormat", query.DefaultOutputFormat, "format string for --outFormat custom, see Output Format for more details") fs.IntVar(&flags.OptimizationLevel, "optLevel", 0, "optimization `level` for queries, 0 is automatic, <0 to disable") + fs.StringVar(&flags.DocumentSeparator, "docSeparator", "\n", "separator for custom output format") + fs.StringVar(&flags.ListSeparator, "listSeparator", ", ", "separator for list fields") + + fs.Usage = func() { + f := fs.Output() + fmt.Fprintf(f, "Usage of %s %s\n", os.Args[0], fs.Name()) + fmt.Fprintf(f, " %s [global-flags] %s [query-flags]\n\n", + os.Args[0], fs.Name()) + fmt.Fprintln(f, "Query Flags:") + fs.PrintDefaults() + fmt.Fprintln(f, "\nOutput Format:") + help := `The output format of query results can be customized by setting -outCustomFormat. + + The output of each document has the value of -docSeparator appended to it. + Dates are formated using -dateFormat + Lists use -listSeparator to delimit elements + + Placeholder - Type - Value + %p - Str - path + %T - Str - title + %d - Date - date + %f - Date - filetime + %a - List - authors + %t - List - tags + %l - List - links + %m - Str - meta + + Examples: + "%p %T %d tags:%t" -> '/a/path/to/document A Title 2006-01-02T15:04:05Z07:00 tags:tag1, tag2\n' + "<h1><a href="%p">%T</a></h1>" -> '<h1><a href="/a/path/to/document">A Title</a></h1>\n' + +` + fmt.Fprint(f, help) + fmt.Fprintln(f, "Global Flags:") + flag.PrintDefaults() + } fs.Parse(args) } |
