From bc6c3d0f369eb16b82968cad8643c1986490906f Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Sun, 25 Feb 2024 15:25:34 -0600 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Parse=20date=20in=20drop=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/drop.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/cmd/drop.go b/cmd/drop.go index fef062f..f7fc43d 100644 --- a/cmd/drop.go +++ b/cmd/drop.go @@ -27,7 +27,7 @@ import ( "github.com/spf13/cobra" ) -var dateStr string +var d Date var fields map[string]string var j Json @@ -52,7 +52,7 @@ var dropCmd = &cobra.Command{ e.Fields = append(e.Fields, models.Meta{k, tools.ParseString(v)}) } e.Title = title - e.Date = time.Now().Local() // @todo parse date + e.Date = d.t l := models.Log{log, []models.Entry{e}} err := files.Append(l) if err != nil { @@ -70,7 +70,8 @@ var dropCmd = &cobra.Command{ func init() { rootCmd.AddCommand(dropCmd) - dropCmd.Flags().StringVarP(&dateStr, "date", "d", time.Now().Local().Format(time.RFC3339), "Date for log entry") + (&d).Set("now") + dropCmd.Flags().VarP(&d, "date", "d", "Date for log entry") dropCmd.Flags().StringToStringVarP(&fields, "fields", "f", nil, "Fields you add to entry") dropCmd.Flags().VarP(&j, "json", "j", "Entire entry as json") } @@ -90,3 +91,22 @@ func (j *Json) Set(in string) error { func (j *Json) Type() string { return "json" } + +type Date struct { + s string + t time.Time +} + +func (d *Date) String() string { + return d.s +} + +func (d *Date) Set(in string) (err error) { + d.s = in + d.t, err = tools.ParseDate(in) + return +} + +func (d *Date) Type() string { + return "datetime" +}