diff --git a/config.go b/config.go index 837a15f..5f4edf4 100644 --- a/config.go +++ b/config.go @@ -20,6 +20,7 @@ type jobconfig struct { Name string `yaml:"name"` Hour string `yaml:"hour"` Minute string `yaml:"minute"` + Weekday string `yaml:"weekday"` Command string `yaml:"command"` Notification string `yaml:"notification,omitempty"` } @@ -65,6 +66,15 @@ func ReadFromFile(path string) (config, error) { } func (jc jobconfig) MatchCurrentTime(t time.Time) (bool, error) { + fmt.Println("weekday", jc.Weekday) + matchWeekDay, err := matchTime(jc.Weekday, int(t.Weekday())) + if err != nil { + return false, err + } + if !matchWeekDay { + return false, nil + } + matchHour, err := matchTime(jc.Hour, t.Hour()) if err != nil { return false, err diff --git a/config_test.go b/config_test.go index 6a978f8..abc99b1 100644 --- a/config_test.go +++ b/config_test.go @@ -146,25 +146,25 @@ func TestMatchJobTime(t *testing.T) { }{ { name: "failed-houre", - job: jobconfig{Hour: "15", Minute: "*"}, + job: jobconfig{Hour: "15", Minute: "*", Weekday: "*"}, expRes: false, expErrMsg: "", }, { name: "failed-minute", - job: jobconfig{Hour: "*", Minute: "46"}, + job: jobconfig{Hour: "*", Minute: "46", Weekday: "*"}, expRes: false, expErrMsg: "", }, { name: "pass", - job: jobconfig{Hour: "*", Minute: "*"}, + job: jobconfig{Hour: "*", Minute: "*", Weekday: "*"}, expRes: true, expErrMsg: "", }, { name: "failed-with-error", - job: jobconfig{Hour: "abs", Minute: "*"}, + job: jobconfig{Hour: "abs", Minute: "*", Weekday: "*"}, expRes: false, expErrMsg: "cant parse time pattern", },