Compare commits

..

14 commits

Author SHA1 Message Date
fba5551bb3 🔨 Fix make open-report for Darwin 2024-10-09 15:14:37 -05:00
85671a076c ✏️ Fix Makefile so it doesn't re-run test and fmt when it doesn't need to 2024-10-09 15:13:34 -05:00
da35bf4bcf Fix TestMkdirErr on Darwin 2024-10-09 15:08:37 -05:00
345ef9471d 🔀 Merge branch 'rel/0.0.6' into stable 2024-10-07 15:53:04 -05:00
5f6ce7ca21 📝 Update CHANGELOG 2024-10-07 15:52:37 -05:00
514ffee613 🔀 Merge branch 'feature/date-parser-refactor' into develop 2024-10-07 15:51:06 -05:00
ece9256745 👽️ Support changes in go-dateparser 2024-10-07 15:50:33 -05:00
e9c1bf7070 ♻️ Return bool directly
Silly me
2024-10-07 15:50:02 -05:00
306b2c597d ⬆️ Upgrade go-dateparser to new version
Don't need my replaced version anymore
2024-10-07 15:49:13 -05:00
ab0dea2805 🔀 Merge tag 'v0.0.5' into develop
 Add --output_json option for drop command
2024-10-07 14:20:50 -05:00
7312714ccb 🔀 Merge branch 'rel/0.0.5' into stable 2024-10-07 14:19:29 -05:00
9980ae8cc7 📝 Update CHANGELOG 2024-10-07 14:18:32 -05:00
02a7babb36 Syntactic sugar in drop command for outputting json 2024-10-07 14:15:28 -05:00
80e07dbd14 🔀 Merge tag 'v0.0.4' into develop
🔖 v0.0.4 with config -p flag
2024-05-08 15:07:33 -05:00
9 changed files with 52 additions and 23 deletions

View file

@ -1,5 +1,13 @@
# Changelog
## [0.0.6] - 2024-10-07
- Update external dependency: go-dateparser
## [0.0.5] - 2024-10-07
- Small change: adds --output_json to drop command.
## [0.0.4] - 2024-05-08
- ✨ Add -p flag to config to print config path

View file

@ -3,6 +3,12 @@ OUT=my-log
GOBIN=$(shell go env GOBIN)
COVEROUT=cover.out
COVERHTML=cover.html
OPEN=xdg-open
OS=$(shell uname -s)
ifeq ($(OS),Darwin)
OPEN=open
endif
.PHONY: help
help: ## Show help for documented recipes
@ -23,7 +29,8 @@ test: ## Test application and generate coverage report
$(MAKE) clean
$(MAKE) $(COVEROUT)
$(COVEROUT): $(SOURCES) fmt
$(COVEROUT): $(SOURCES)
$(MAKE) fmt
go test ./... -race -cover -coverprofile $@
$(COVERHTML): $(COVEROUT)
@ -33,8 +40,8 @@ $(COVERHTML): $(COVEROUT)
report: $(COVERHTML) ## Generate a coverage report
.PHONY: open-report
open-report: report ## Open the coverage report in the default browser
xdg-open $(COVERHTML)
open-report: $(COVERHTML) ## Open the coverage report in the default browser
$(OPEN) $<
.PHONY: build
build: $(OUT) ## Builds the application

View file

@ -21,6 +21,7 @@ import (
"fmt"
"time"
"codeberg.org/danjones000/my-log/config"
"codeberg.org/danjones000/my-log/files"
"codeberg.org/danjones000/my-log/formatters"
"codeberg.org/danjones000/my-log/models"
@ -31,6 +32,7 @@ import (
var d Date
var fields map[string]string
var j Json
var outJson bool
// dropCmd represents the drop command
var dropCmd = &cobra.Command{
@ -40,6 +42,10 @@ var dropCmd = &cobra.Command{
Args: cobra.ExactArgs(2),
SilenceUsage: true,
RunE: func(cmd *cobra.Command, args []string) error {
if outJson {
config.Overrides["output.stdout.config.format"] = "json"
}
log := args[0]
title := args[1]
ms := &models.Metas{}
@ -83,6 +89,7 @@ func init() {
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")
dropCmd.Flags().BoolVarP(&outJson, "output_json", "o", false, "Output result as JSON")
}
type Json struct {

View file

@ -211,7 +211,7 @@ func (s *AppendTestSuite) TestConfLoadErr() {
func (s *AppendTestSuite) TestMkdirErr() {
// Don't run this test as root
config.Overrides["input.path"] = "/root/my-logs-test"
config.Overrides["input.path"] = "/var/my-logs-test"
defer func(path string) {
config.Overrides["input.path"] = path
}(s.dir)

8
go.mod
View file

@ -5,10 +5,10 @@ go 1.21.5
require (
github.com/BurntSushi/toml v1.3.2
github.com/caarlos0/env/v10 v10.0.0
github.com/markusmobius/go-dateparser v1.2.1
github.com/markusmobius/go-dateparser v1.2.3
github.com/mitchellh/mapstructure v1.5.0
github.com/spf13/cobra v1.8.0
github.com/stretchr/testify v1.8.4
github.com/stretchr/testify v1.9.0
)
require (
@ -25,9 +25,7 @@ require (
github.com/tetratelabs/wazero v1.2.1 // indirect
github.com/wasilibs/go-re2 v1.3.0 // indirect
golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 // indirect
golang.org/x/text v0.10.0 // indirect
golang.org/x/text v0.14.0 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace github.com/markusmobius/go-dateparser => github.com/goodevilgenius/go-dateparser v1.2.2

12
go.sum
View file

@ -8,8 +8,6 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/elliotchance/pie/v2 v2.7.0 h1:FqoIKg4uj0G/CrLGuMS9ejnFKa92lxE1dEgBD3pShXg=
github.com/elliotchance/pie/v2 v2.7.0/go.mod h1:18t0dgGFH006g4eVdDtWfgFZPQEgl10IoEO8YWEq3Og=
github.com/goodevilgenius/go-dateparser v1.2.2 h1:Up9KokPx/h07mesQGAZQg3Xi/8yrDVn1638h3k/lRyk=
github.com/goodevilgenius/go-dateparser v1.2.2/go.mod h1:5xYsZ1h7iB3sE1BSu8bkjYpbFST7EU1/AFxcyO3mgYg=
github.com/hablullah/go-hijri v1.0.2 h1:drT/MZpSZJQXo7jftf5fthArShcaMtsal0Zf/dnmp6k=
github.com/hablullah/go-hijri v1.0.2/go.mod h1:OS5qyYLDjORXzK4O1adFw9Q5WfhOcMdAKglDkcTxgWQ=
github.com/hablullah/go-juliandays v1.0.0 h1:A8YM7wIj16SzlKT0SRJc9CD29iiaUzpBLzh5hr0/5p0=
@ -24,6 +22,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo=
github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/markusmobius/go-dateparser v1.2.3 h1:TvrsIvr5uk+3v6poDjaicnAFJ5IgtFHgLiuMY2Eb7Nw=
github.com/markusmobius/go-dateparser v1.2.3/go.mod h1:cMwQRrBUQlK1UI5TIFHEcvpsMbkWrQLXuaPNMFzuYLk=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
@ -36,8 +36,8 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tetratelabs/wazero v1.2.1 h1:J4X2hrGzJvt+wqltuvcSjHQ7ujQxA9gb6PeMs4qlUWs=
github.com/tetratelabs/wazero v1.2.1/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ=
github.com/wasilibs/go-re2 v1.3.0 h1:LFhBNzoStM3wMie6rN2slD1cuYH2CGiHpvNL3UtcsMw=
@ -46,8 +46,8 @@ github.com/wasilibs/nottinygc v0.4.0 h1:h1TJMihMC4neN6Zq+WKpLxgd9xCFMw7O9ETLwY2e
github.com/wasilibs/nottinygc v0.4.0/go.mod h1:oDcIotskuYNMpqMF23l7Z8uzD4TC0WXHK8jetlB3HIo=
golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 h1:ba9YlqfDGTTQ5aZ2fwOoQ1hf32QySyQkR6ODGDzHlnE=
golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE=
golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View file

@ -24,11 +24,7 @@ func ParseString(in string) any {
if null.MatchString(s) {
return nil
} else if yesno.MatchString(s) {
if yes.MatchString(s) {
return true
} else {
return false
}
return yes.MatchString(s)
} else if i, err := strconv.Atoi(s); err == nil {
return i
} else if f, err := strconv.ParseFloat(s, 64); err == nil {

View file

@ -1,6 +1,7 @@
package tools
import (
"strconv"
"time"
dp "github.com/markusmobius/go-dateparser"
@ -23,6 +24,19 @@ func ParseDate(in string) (t time.Time, err error) {
return MaxTime, nil
}
var er error
for _, format := range []string{time.RFC3339, DateFormat} {
if t, er = time.ParseInLocation(format, in, nil); er == nil {
return
}
}
var ts int64
if ts, er = strconv.ParseInt(in, 10, 0); er == nil {
t = time.Unix(ts, 0)
return
}
conf := dp.Configuration{
CurrentTime: time.Now().Local(),
ReturnTimeAsPeriod: true,
@ -32,12 +46,11 @@ func ParseDate(in string) (t time.Time, err error) {
d, err := dp.Parse(&conf, in)
t = d.Time
if err != nil {
d, err = dp.Parse(&conf, in, DateFormat)
t = d.Time
return
}
y, mon, day, h, loc := t.Year(), t.Month(), t.Day(), t.Hour(), t.Location()
switch d.Period {
case date.Second:
t = t.Truncate(time.Second)

View file

@ -23,7 +23,7 @@ func TestParseDate(t *testing.T) {
firstMonth := time.Date(y, mon, 1, 0, 0, 0, 0, loc)
firstYear := time.Date(y, 1, 1, 0, 0, 0, 0, loc)
exact := "2075-02-12T12:13:54.536-02:00"
exactd, _ := time.ParseInLocation(time.RFC3339, exact, time.FixedZone("UTC-02:00", -7200))
exactd, _ := time.ParseInLocation(time.RFC3339, exact, nil)
var ts int64 = 1708876012
tsd := time.Unix(ts, 0)
ent := "February 25, 2024 at 04:00:13AM +0230"