commit 62d43b6978d914917b7be65c0fb0cabff12c8199
parent 1d0b0df80e65527e655fd5d2b40fca43ecb6c0e9
Author: Tomas Nemec <nemi@skaut.cz>
Date: Sat, 11 Feb 2023 01:52:17 +0100
feat: optional specification of time for start and stop
Diffstat:
M | command.go | | | 44 | ++++++++++++++++++++++++-------------------- |
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/command.go b/command.go
@@ -76,24 +76,26 @@ func (c Command) add() {
}
func (c Command) start() {
- if len(c.args) != 2 {
- fmt.Fprintln(os.Stderr, "start <group> <start>")
+ if len(c.args) < 1 || len(c.args) > 2 {
+ fmt.Fprintln(os.Stderr, "start <group> [<start>]")
os.Exit(1)
}
groupArg, _ := c.nextArg()
- startArg, _ := c.nextArg()
-
- start, err := c.entryTime.ParseArg(startArg)
- if err != nil {
- fmt.Fprintf(os.Stderr, "[start] time (%s) could not be parsed\n", startArg)
- os.Exit(1)
- }
-
group := tme.NewGroup(c.rootPath, groupArg)
// TODO(tms) 22.10.22: maybe ask if user want create new folder (fe: typo)
group.Create()
+ startArg, err := c.nextArg()
+ start := time.Now()
+ if err == nil {
+ start, err = c.entryTime.ParseArg(startArg)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "[start] time (%s) could not be parsed\n", startArg)
+ os.Exit(1)
+ }
+ }
+
entry := tme.NewRunningEntry(start)
if entry.Exists(group) {
@@ -105,22 +107,24 @@ func (c Command) start() {
}
func (c Command) stop() {
- if len(c.args) != 2 {
- fmt.Fprintln(os.Stderr, "stop <group> <stop>")
+ if len(c.args) < 1 || len(c.args) > 2 {
+ fmt.Fprintln(os.Stderr, "stop <group> [<stop>]")
os.Exit(1)
}
groupArg, _ := c.nextArg()
- stopArg, _ := c.nextArg()
+ group := tme.NewGroup(c.rootPath, groupArg)
- stop, err := c.entryTime.ParseArg(stopArg)
- if err != nil {
- fmt.Fprintf(os.Stderr, "[start] time (%s) could not be parsed\n", stopArg)
- os.Exit(1)
+ stop := time.Now()
+ stopArg, err := c.nextArg()
+ if err == nil {
+ stop, err = c.entryTime.ParseArg(stopArg)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "[start] time (%s) could not be parsed\n", stopArg)
+ os.Exit(1)
+ }
}
- group := tme.NewGroup(c.rootPath, groupArg)
-
startEntry, err := tme.NewRunningEntryFromPath(group.ActivePath(), c.entryTime)
if err != nil {
fmt.Fprintf(os.Stderr, "no entry running in %q\n", groupArg)
@@ -262,7 +266,7 @@ func formatEntries(group tme.Group, entryTime *tme.Time) {
func formatEntry(group tme.Group, entry tme.Entry) {
groupPath := group.Path
duration := entry.Duration().Round(time.Second)
- timeLayout := "15:04 02/01/2006"
+ timeLayout := "15:04:05 02/01/2006"
var start, stop string
switch e := entry.(type) {