diff options
| author | Maciej Borzecki <maciej.zenon.borzecki@canonical.com> | 2017-12-22 13:08:15 +0100 |
|---|---|---|
| committer | Maciej Borzecki <maciej.zenon.borzecki@canonical.com> | 2017-12-22 13:18:44 +0100 |
| commit | 3e0bf4b7467407080779297fb7d95499bba60edc (patch) | |
| tree | efcd9730362d04f623a1c86c8cd1a40989fca065 /timeutil | |
| parent | 01f5d06d1aadfd71e81ef1431890d77cb86a3f62 (diff) | |
timeutil: refactor parseClockSpan()
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
Diffstat (limited to 'timeutil')
| -rw-r--r-- | timeutil/schedule.go | 31 |
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), |
