Skip to content

Commit 9a05dc1

Browse files
committed
Added dateparse parsing, updated deps
1 parent 1c8cec0 commit 9a05dc1

File tree

3 files changed

+82
-67
lines changed

3 files changed

+82
-67
lines changed

go.mod

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ require (
1313
)
1414

1515
require (
16-
github.com/inconshreveable/mousetrap v1.0.1 // indirect
16+
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect
17+
github.com/inconshreveable/mousetrap v1.1.0 // indirect
1718
github.com/spf13/pflag v1.0.5 // indirect
18-
github.com/tidwall/btree v1.5.2 // indirect
19-
github.com/tidwall/gjson v1.14.3 // indirect
19+
github.com/tidwall/btree v1.6.0 // indirect
20+
github.com/tidwall/gjson v1.14.4 // indirect
2021
github.com/tidwall/grect v0.1.4 // indirect
2122
github.com/tidwall/match v1.1.1 // indirect
2223
github.com/tidwall/pretty v1.2.1 // indirect
2324
github.com/tidwall/rtred v0.1.2 // indirect
2425
github.com/tidwall/tinyqueue v0.1.1 // indirect
2526
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
26-
golang.org/x/sys v0.2.0 // indirect
27+
golang.org/x/sys v0.4.0 // indirect
2728
)

go.sum

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
2+
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
13
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ=
24
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08/go.mod h1:pCxVEbcm3AMg7ejXyorUXi6HQCzOIBf7zEDVPtw0/U4=
35
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@@ -17,11 +19,16 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH
1719
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
1820
github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
1921
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
22+
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
23+
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
2024
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
2125
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
26+
github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
2227
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2328
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
29+
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
2430
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
31+
github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg=
2532
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
2633
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
2734
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
@@ -51,6 +58,8 @@ github.com/tidwall/btree v1.4.2 h1:PpkaieETJMUxYNADsjgtNRcERX7mGc/GP2zp/r5FM3g=
5158
github.com/tidwall/btree v1.4.2/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE=
5259
github.com/tidwall/btree v1.5.2 h1:5eA83Gfki799V3d3bJo9sWk+yL2LRoTEah3O/SA6/8w=
5360
github.com/tidwall/btree v1.5.2/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
61+
github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
62+
github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
5463
github.com/tidwall/buntdb v1.2.9 h1:XVz684P7X6HCTrdr385yDZWB1zt/n20ZNG3M1iGyFm4=
5564
github.com/tidwall/buntdb v1.2.9/go.mod h1:IwyGSvvDg6hnKSIhtdZ0AqhCZGH8ukdtCAzaP8fI1X4=
5665
github.com/tidwall/buntdb v1.2.10 h1:U/ebfkmYPBnyiNZIirUiWFcxA/mgzjbKlyPynFsPtyM=
@@ -62,6 +71,8 @@ github.com/tidwall/gjson v1.14.1 h1:iymTbGkQBhveq21bEvAQ81I0LEBork8BFe1CUZXdyuo=
6271
github.com/tidwall/gjson v1.14.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
6372
github.com/tidwall/gjson v1.14.3 h1:9jvXn7olKEHU1S9vwoMGliaT8jq1vJ7IH/n9zD9Dnlw=
6473
github.com/tidwall/gjson v1.14.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
74+
github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM=
75+
github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
6576
github.com/tidwall/grect v0.1.4 h1:dA3oIgNgWdSspFzn1kS4S/RDpZFLrIxAZOdJKjYapOg=
6677
github.com/tidwall/grect v0.1.4/go.mod h1:9FBsaYRaR0Tcy4UwefBX/UDcDcDy9V5jUcxHzv2jd5Q=
6778
github.com/tidwall/lotsa v1.0.2 h1:dNVBH5MErdaQ/xd9s769R31/n2dXavsQ0Yf4TMEHHw8=
@@ -91,6 +102,8 @@ golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVq
91102
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
92103
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
93104
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
105+
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
106+
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
94107
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
95108
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
96109
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

z/entryCmd.go

+64-63
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,83 @@
11
package z
22

33
import (
4-
"os"
5-
"fmt"
6-
"time"
7-
"strings"
8-
"github.com/spf13/cobra"
4+
"fmt"
5+
"os"
6+
"strings"
7+
8+
"github.com/araddon/dateparse"
9+
"github.com/spf13/cobra"
910
)
1011

1112
var entryCmd = &cobra.Command{
12-
Use: "entry ([flags]) [id]",
13-
Short: "Display or update activity",
14-
Long: "Display or update tracked activity.",
15-
Args: cobra.ExactArgs(1),
16-
Run: func(cmd *cobra.Command, args []string) {
17-
user := GetCurrentUser()
18-
id := args[0]
13+
Use: "entry ([flags]) [id]",
14+
Short: "Display or update activity",
15+
Long: "Display or update tracked activity.",
16+
Args: cobra.ExactArgs(1),
17+
Run: func(cmd *cobra.Command, args []string) {
18+
user := GetCurrentUser()
19+
id := args[0]
1920

20-
entry, err := database.GetEntry(user, id)
21-
if err != nil {
22-
fmt.Printf("%s %+v\n", CharError, err)
23-
os.Exit(1)
24-
}
21+
entry, err := database.GetEntry(user, id)
22+
if err != nil {
23+
fmt.Printf("%s %+v\n", CharError, err)
24+
os.Exit(1)
25+
}
2526

26-
if begin != "" || finish != "" || project != "" || notes != "" || task != "" {
27-
if begin != "" {
28-
entry.Begin, err = time.Parse(time.RFC3339, begin)
29-
if err != nil {
30-
fmt.Printf("%s %+v\n", CharError, err)
31-
os.Exit(1)
32-
}
33-
}
27+
if begin != "" || finish != "" || project != "" || notes != "" || task != "" {
28+
if begin != "" {
29+
entry.Begin, err = dateparse.ParseAny(begin)
30+
if err != nil {
31+
fmt.Printf("%s %+v\n", CharError, err)
32+
os.Exit(1)
33+
}
34+
}
3435

35-
if finish != "" {
36-
entry.Finish, err = time.Parse(time.RFC3339, finish)
37-
if err != nil {
38-
fmt.Printf("%s %+v\n", CharError, err)
39-
os.Exit(1)
40-
}
41-
}
36+
if finish != "" {
37+
entry.Finish, err = dateparse.ParseAny(finish)
38+
if err != nil {
39+
fmt.Printf("%s %+v\n", CharError, err)
40+
os.Exit(1)
41+
}
42+
}
4243

43-
if project != "" {
44-
entry.Project = project
45-
}
44+
if project != "" {
45+
entry.Project = project
46+
}
4647

47-
if task != "" {
48-
entry.Task = task
49-
}
48+
if task != "" {
49+
entry.Task = task
50+
}
5051

51-
if notes != "" {
52-
entry.Notes = strings.Replace(notes, "\\n", "\n", -1)
53-
}
52+
if notes != "" {
53+
entry.Notes = strings.Replace(notes, "\\n", "\n", -1)
54+
}
5455

55-
_, err = database.UpdateEntry(user, entry)
56-
if err != nil {
57-
fmt.Printf("%s %+v\n", CharError, err)
58-
os.Exit(1)
59-
}
60-
}
56+
_, err = database.UpdateEntry(user, entry)
57+
if err != nil {
58+
fmt.Printf("%s %+v\n", CharError, err)
59+
os.Exit(1)
60+
}
61+
}
6162

62-
fmt.Printf("%s %s\n", CharInfo, entry.GetOutput(true))
63-
return
64-
},
63+
fmt.Printf("%s %s\n", CharInfo, entry.GetOutput(true))
64+
return
65+
},
6566
}
6667

6768
func init() {
68-
rootCmd.AddCommand(entryCmd)
69-
entryCmd.Flags().StringVarP(&begin, "begin", "b", "", "Update date/time the activity began at\n\nUse RFC3339 format.")
70-
entryCmd.Flags().StringVarP(&finish, "finish", "s", "", "Update date/time the activity finished at\n\nUse RFC3339 format.")
71-
entryCmd.Flags().StringVarP(&project, "project", "p", "", "Update activity project")
72-
entryCmd.Flags().StringVarP(&notes, "notes", "n", "", "Update activity notes")
73-
entryCmd.Flags().StringVarP(&task, "task", "t", "", "Update activity task")
74-
entryCmd.Flags().BoolVar(&fractional, "decimal", false, "Show fractional hours in decimal format instead of minutes")
69+
rootCmd.AddCommand(entryCmd)
70+
entryCmd.Flags().StringVarP(&begin, "begin", "b", "", "Update date/time the activity began at")
71+
entryCmd.Flags().StringVarP(&finish, "finish", "s", "", "Update date/time the activity finished at")
72+
entryCmd.Flags().StringVarP(&project, "project", "p", "", "Update activity project")
73+
entryCmd.Flags().StringVarP(&notes, "notes", "n", "", "Update activity notes")
74+
entryCmd.Flags().StringVarP(&task, "task", "t", "", "Update activity task")
75+
entryCmd.Flags().BoolVar(&fractional, "decimal", false, "Show fractional hours in decimal format instead of minutes")
7576

76-
var err error
77-
database, err = InitDatabase()
78-
if err != nil {
79-
fmt.Printf("%s %+v\n", CharError, err)
80-
os.Exit(1)
81-
}
77+
var err error
78+
database, err = InitDatabase()
79+
if err != nil {
80+
fmt.Printf("%s %+v\n", CharError, err)
81+
os.Exit(1)
82+
}
8283
}

0 commit comments

Comments
 (0)