Refactored output

This commit is contained in:
マリウス 2020-10-15 21:38:03 +01:00
parent 44dd4039fc
commit f95d4dfbb4
No known key found for this signature in database
GPG key ID: C228EF0A530AF06F
3 changed files with 37 additions and 29 deletions

View file

@ -3,6 +3,8 @@ package z
import ( import (
"errors" "errors"
"time" "time"
"fmt"
"github.com/gookit/color"
) )
type Entry struct { type Entry struct {
@ -80,5 +82,37 @@ func (entry *Entry) SetFinishFromString(finish string) (time.Time, error) {
} }
func (entry *Entry) IsFinishedAfterBegan() (bool) { func (entry *Entry) IsFinishedAfterBegan() (bool) {
return (entry.Finish.IsZero() == false && entry.Begin.Before(entry.Finish)) return (entry.Finish.IsZero() || entry.Begin.Before(entry.Finish))
}
func (entry *Entry) GetOutputForTrack(isRunning bool) (string) {
outputPrefix := "began tracking"
if isRunning == false {
outputPrefix = "tracked"
}
if entry.Task != "" && entry.Project != "" {
return fmt.Sprintf("▷ %s %s on %s\n", outputPrefix, color.FgLightWhite.Render(entry.Task), color.FgLightWhite.Render(entry.Project))
} else if entry.Task != "" && entry.Project == "" {
return fmt.Sprintf("▷ %s %s\n", outputPrefix, color.FgLightWhite.Render(entry.Task))
} else if entry.Task == "" && entry.Project != "" {
return fmt.Sprintf("▷ %s task on %s\n", outputPrefix, color.FgLightWhite.Render(entry.Project))
} else {
return fmt.Sprintf("▷ %s task\n", outputPrefix)
}
}
func (entry *Entry) GetOutputForFinish() (string) {
trackDiff := entry.Finish.Sub(entry.Begin)
trackDiffOut := time.Time{}.Add(trackDiff)
if entry.Task != "" && entry.Project != "" {
return fmt.Sprintf("□ finished tracking %s on %s for %sh\n", color.FgLightWhite.Render(entry.Task), color.FgLightWhite.Render(entry.Project), trackDiffOut.Format("15:04"))
} else if entry.Task != "" && entry.Project == "" {
return fmt.Sprintf("□ finished tracking %s for %sh\n", color.FgLightWhite.Render(entry.Task), trackDiffOut.Format("15:04"))
} else if entry.Task == "" && entry.Project != "" {
return fmt.Sprintf("□ finished tracking task on %s for %sh\n", color.FgLightWhite.Render(entry.Project), trackDiffOut.Format("15:04"))
}
return fmt.Sprintf("□ finished tracking task\n")
} }

View file

@ -6,7 +6,6 @@ import (
"fmt" "fmt"
"time" "time"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/gookit/color"
) )
var finishCmd = &cobra.Command{ var finishCmd = &cobra.Command{
@ -59,18 +58,7 @@ var finishCmd = &cobra.Command{
log.Fatal(err) log.Fatal(err)
} }
trackDiff := runningEntry.Finish.Sub(runningEntry.Begin) fmt.Printf(runningEntry.GetOutputForFinish())
trackDiffOut := time.Time{}.Add(trackDiff)
if runningEntry.Task != "" && runningEntry.Project != "" {
fmt.Printf("□ finished tracking %s on %s for %sh\n", color.FgLightWhite.Render(runningEntry.Task), color.FgLightWhite.Render(runningEntry.Project), trackDiffOut.Format("15:04"))
} else if runningEntry.Task != "" && runningEntry.Project == "" {
fmt.Printf("□ finished tracking %s for %sh\n", color.FgLightWhite.Render(runningEntry.Task), trackDiffOut.Format("15:04"))
} else if runningEntry.Task == "" && runningEntry.Project != "" {
fmt.Printf("□ finished tracking task on %s for %sh\n", color.FgLightWhite.Render(runningEntry.Project), trackDiffOut.Format("15:04"))
} else {
fmt.Printf("□ finished tracking task\n")
}
return return
}, },
} }

View file

@ -5,7 +5,6 @@ import (
"log" "log"
"fmt" "fmt"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/gookit/color"
) )
var trackCmd = &cobra.Command{ var trackCmd = &cobra.Command{
@ -37,20 +36,7 @@ var trackCmd = &cobra.Command{
log.Fatal(err) log.Fatal(err)
} }
outputPrefix := "began tracking" fmt.Printf(newEntry.GetOutputForTrack(isRunning))
if isRunning == false {
outputPrefix = "tracked"
}
if newEntry.Task != "" && newEntry.Project != "" {
fmt.Printf("▷ %s %s on %s\n", outputPrefix, color.FgLightWhite.Render(newEntry.Task), color.FgLightWhite.Render(newEntry.Project))
} else if newEntry.Task != "" && newEntry.Project == "" {
fmt.Printf("▷ %s %s\n", outputPrefix, color.FgLightWhite.Render(newEntry.Task))
} else if newEntry.Task == "" && newEntry.Project != "" {
fmt.Printf("▷ %s task on %s\n", outputPrefix, color.FgLightWhite.Render(newEntry.Project))
} else {
fmt.Printf("▷ %s task\n", outputPrefix)
}
return return
}, },
} }