summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorDaniel Compton <desk@danielcompton.net>2019-02-21 14:34:32 +1300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-03-19 00:33:02 +0100
commit44f5c1c14cb1f42cc5f01739c289e9cfc83602af (patch)
treea40a1ee0e13626a1870616415c3b632545ca5c72 /commands
parent984a73af9e5b5145297723f26faa38f29ca2918d (diff)
List future and expired dates in CSV format
It is useful to see the date that a post will be published, or the date that it has expired, to build tooling around it. This commit writes posts and their publish/expired date as CSV. Fixes #5610
Diffstat (limited to 'commands')
-rw-r--r--commands/list.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/commands/list.go b/commands/list.go
index 9922e957d..f49726b62 100644
--- a/commands/list.go
+++ b/commands/list.go
@@ -14,7 +14,10 @@
package commands
import (
+ "encoding/csv"
+ "os"
"path/filepath"
+ "time"
"github.com/gohugoio/hugo/hugolib"
"github.com/spf13/cobra"
@@ -101,11 +104,16 @@ posted in the future.`,
return newSystemError("Error Processing Source Content", err)
}
+ writer := csv.NewWriter(os.Stdout)
+ defer writer.Flush()
+
for _, p := range sites.Pages() {
if p.IsFuture() {
- jww.FEEDBACK.Println(filepath.Join(p.File.Dir(), p.File.LogicalName()))
+ err := writer.Write([]string{filepath.Join(p.File.Dir(), p.File.LogicalName()), p.PublishDate.Format(time.RFC3339)})
+ if err != nil {
+ return newSystemError("Error writing future posts to stdout", err)
+ }
}
-
}
return nil
@@ -137,11 +145,16 @@ expired.`,
return newSystemError("Error Processing Source Content", err)
}
+ writer := csv.NewWriter(os.Stdout)
+ defer writer.Flush()
+
for _, p := range sites.Pages() {
if p.IsExpired() {
- jww.FEEDBACK.Println(filepath.Join(p.File.Dir(), p.File.LogicalName()))
+ err := writer.Write([]string{filepath.Join(p.File.Dir(), p.File.LogicalName()), p.ExpiryDate.Format(time.RFC3339)})
+ if err != nil {
+ return newSystemError("Error writing expired posts to stdout", err)
+ }
}
-
}
return nil