summaryrefslogtreecommitdiff
path: root/timeutil
diff options
authorMaciej Borzecki <maciej.zenon.borzecki@canonical.com>2017-12-22 13:08:15 +0100
committerMaciej Borzecki <maciej.zenon.borzecki@canonical.com>2017-12-22 13:18:44 +0100
commit3e0bf4b7467407080779297fb7d95499bba60edc (patch)
treeefcd9730362d04f623a1c86c8cd1a40989fca065 /timeutil
parent01f5d06d1aadfd71e81ef1431890d77cb86a3f62 (diff)
timeutil: refactor parseClockSpan()
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
Diffstat (limited to 'timeutil')
-rw-r--r--timeutil/schedule.go31
1 files changed, 13 insertions, 18 deletions
diff --git a/timeutil/schedule.go b/timeutil/schedule.go
index 0987d8e795..68c39afea3 100644
--- a/timeutil/schedule.go
+++ b/timeutil/schedule.go
@@ -558,43 +558,38 @@ func parseWeekSpan(s string) (span WeekSpan, err error) {
// special tokens `-`, `~` (followed by an optional [/count]) that indicate a
// whole day span, or a whole day span with spread respectively.
func parseClockSpan(s string) (span ClockSpan, err error) {
- var parsed ClockSpan
var rest string
// timespan = time ( "-" / "~" ) time [ "/" ( time / count ) ]
- parsed.Split, rest, err = parseCount(s)
+ span.Split, rest, err = parseCount(s)
if err != nil {
- return span, fmt.Errorf("cannot parse %q: not a valid interval", s)
+ return ClockSpan{}, fmt.Errorf("cannot parse %q: not a valid interval", s)
}
if strings.Contains(rest, spreadToken) {
// timespan uses "~" to indicate that the actual event
// time is to be spread.
- parsed.Spread = true
+ span.Spread = true
rest = strings.Replace(rest, spreadToken, spanToken, 1)
}
- if strings.Contains(rest, spanToken) {
- if rest == "-" {
- // whole day span
- parsed.Start = Clock{0, 0}
- parsed.End = Clock{24, 0}
- } else {
- parsed.Start, parsed.End, err = parseClockRange(rest)
- }
+ if rest == "-" {
+ // whole day span
+ span.Start = Clock{0, 0}
+ span.End = Clock{24, 0}
+ } else if strings.Contains(rest, spanToken) {
+ span.Start, span.End, err = parseClockRange(rest)
} else {
- parsed.Start, err = ParseClock(rest)
- if err == nil {
- parsed.End = parsed.Start
- }
+ span.Start, err = ParseClock(rest)
+ span.End = span.Start
}
if err != nil {
- return span, fmt.Errorf("cannot parse %q: not a valid time", s)
+ return ClockSpan{}, fmt.Errorf("cannot parse %q: not a valid time", s)
}
- return parsed, nil
+ return span, nil
}
// parseWeekday parses a single weekday (eg. wed, mon5),