cloudflare/pint

Public

mirrored from https://github.com/cloudflare/pintAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v0.40.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

internal/parser/snooze.go

36lines · modecode

1package parser
2
3import (
4 "strings"
5 "time"
6)
7
8type Snooze struct {
9 Until time.Time
10 Text string
11}
12
13func ParseSnooze(comment string) *Snooze {
14 parts := strings.SplitN(comment, " ", 2)
15 if len(parts) != 2 {
16 return nil
17 }
18
19 s := Snooze{Text: parts[1]}
20
21 var err error
22
23 s.Until, err = time.Parse(time.RFC3339, parts[0])
24 if err != nil {
25 s.Until, err = time.Parse("2006-01-02", parts[0])
26 }
27 if err != nil {
28 return nil
29 }
30
31 if !s.Until.After(time.Now()) {
32 return nil
33 }
34
35 return &s
36}
37