diff options
author | Joe Mooring <[email protected]> | 2024-05-19 08:31:19 -0700 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-05-22 19:50:58 +0200 |
commit | 931e096f21c919b4c78e8f1fca23560bde9143b3 (patch) | |
tree | 8233d6a9224a25dd1850f90cac80a1cfeec1b865 | |
parent | 548dc21378a13c288eddd097101c7f233292f79d (diff) | |
download | hugo-931e096f21c919b4c78e8f1fca23560bde9143b3.tar.gz hugo-931e096f21c919b4c78e8f1fca23560bde9143b3.zip |
commands: Improve list command
- Improve help text
- Add "kind" and "section" to CSV output
- Add a "published" subcommand to list content that is not draft,
expired, or future.
Closes #12520
-rw-r--r-- | commands/list.go | 37 | ||||
-rw-r--r-- | testscripts/commands/gen.txt | 2 |
2 files changed, 27 insertions, 12 deletions
diff --git a/commands/list.go b/commands/list.go index b90a357f8..c2f9c2d87 100644 --- a/commands/list.go +++ b/commands/list.go @@ -41,6 +41,8 @@ func newListCommand() *listCommand { p.PublishDate().Format(time.RFC3339), strconv.FormatBool(p.Draft()), p.Permalink(), + p.Kind(), + p.Section(), } } @@ -67,6 +69,8 @@ func newListCommand() *listCommand { "publishDate", "draft", "permalink", + "kind", + "section", }) for _, p := range h.Pages() { @@ -75,9 +79,6 @@ func newListCommand() *listCommand { if err := writer.Write(record); err != nil { return err } - if err != nil { - return err - } } } @@ -88,8 +89,8 @@ func newListCommand() *listCommand { commands: []simplecobra.Commander{ &simpleCommand{ name: "drafts", - short: "List all drafts", - long: `List all of the drafts in your content directory.`, + short: "List draft content", + long: `List draft content.`, run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { shouldInclude := func(p page.Page) bool { if !p.Draft() || p.File() == nil { @@ -109,8 +110,8 @@ func newListCommand() *listCommand { }, &simpleCommand{ name: "future", - short: "List all posts dated in the future", - long: `List all of the posts in your content directory which will be posted in the future.`, + short: "List future content", + long: `List content with a future publication date.`, run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { shouldInclude := func(p page.Page) bool { if !resource.IsFuture(p) || p.File() == nil { @@ -129,8 +130,8 @@ func newListCommand() *listCommand { }, &simpleCommand{ name: "expired", - short: "List all posts already expired", - long: `List all of the posts in your content directory which has already expired.`, + short: "List expired content", + long: `List content with a past expiration date.`, run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { shouldInclude := func(p page.Page) bool { if !resource.IsExpired(p) || p.File() == nil { @@ -149,8 +150,8 @@ func newListCommand() *listCommand { }, &simpleCommand{ name: "all", - short: "List all posts", - long: `List all of the posts in your content directory, include drafts, future and expired pages.`, + short: "List all content", + long: `List all content including draft, future, and expired.`, run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { shouldInclude := func(p page.Page) bool { return p.File() != nil @@ -161,6 +162,20 @@ func newListCommand() *listCommand { cmd.ValidArgsFunction = cobra.NoFileCompletions }, }, + &simpleCommand{ + name: "published", + short: "List published content", + long: `List content that is not draft, future, or expired.`, + run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error { + shouldInclude := func(p page.Page) bool { + return !p.Draft() && !resource.IsFuture(p) && !resource.IsExpired(p) && p.File() != nil + } + return list(cd, r, shouldInclude) + }, + withc: func(cmd *cobra.Command, r *rootCommand) { + cmd.ValidArgsFunction = cobra.NoFileCompletions + }, + }, }, } } diff --git a/testscripts/commands/gen.txt b/testscripts/commands/gen.txt index 2ab90e5be..22a936b41 100644 --- a/testscripts/commands/gen.txt +++ b/testscripts/commands/gen.txt @@ -1,6 +1,6 @@ # Test the gen commands. # Note that adding new commands will require updating the NUM_COMMANDS value. -env NUM_COMMANDS=42 +env NUM_COMMANDS=43 hugo gen -h stdout 'A collection of several useful generators\.' |