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" +}