diff --git a/logger.go b/logger.go new file mode 100644 index 0000000..2d3bc3f --- /dev/null +++ b/logger.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + "log" + "os" +) + +type Logger struct { + logpath string + logfile []byte +} + +// write to our file, if it exists +func (l *Logger) Log(str string) { + + CheckLogPath(l.logpath) + + var msg string + msg = str + os.WriteFile(l.logpath, []byte(msg), os.ModeAppend) +} + +// dump the err into a string, write to our log file, then pass off the error to the log package +func (l *Logger) Fatal(err error) { + l.Log(fmt.Sprintf("%v\n", err)) + log.Fatal(err) +} + +func NewLogger(logpath string) *Logger { + CheckLogPath(logpath) + + return &Logger{ + logpath: logpath, + } +} + +// checks for existence of given logpath file, creates if it doesn't +func CheckLogPath(logpath string) { + _, err := os.Stat(logpath) + if os.IsNotExist(err) { + os.Create(logpath) + } else if err != nil { + log.Fatal(err) + } +} diff --git a/resources/images/crown.png b/resources/images/crown.png new file mode 100644 index 0000000..60fc301 Binary files /dev/null and b/resources/images/crown.png differ diff --git a/resources/images/ebiten.png b/resources/images/ebiten.png new file mode 100644 index 0000000..e78de9f Binary files /dev/null and b/resources/images/ebiten.png differ diff --git a/resources/settings/config.json b/resources/settings/config.json new file mode 100644 index 0000000..de3d64d --- /dev/null +++ b/resources/settings/config.json @@ -0,0 +1,19 @@ +{ + "labels": { + "title": "PI-8 Dashboard", + "completion": "PHASE B COMPLETE" + }, + "expiry": "2023-11-24T04:00:00.000Z", + "jira": { + "url": "https://jirawms.mda.ca", + "teamfield": "customfield_14580", + "project": "GERSSW", + "epics": ["GERSSW-4971", "GERSSW-3759"] + }, + "teams": ["devops","gaia", "igaluk", "orion", "pulsar", "solaris", "supernova"], + "productowners": ["dbenavid", "el076320", "em031838", "ktsui", "ma031420"], + "criteria": { + "pattern": "POB: (\\d+)", + "matchid": 1 + } +} \ No newline at end of file diff --git a/settings.go b/settings.go new file mode 100644 index 0000000..732f026 --- /dev/null +++ b/settings.go @@ -0,0 +1,49 @@ +package main + +import ( + "encoding/json" + "os" + "time" +) + +type DashSettingsJira struct { + Url string `json:"url"` + Teamfield string `json:"teamfield"` + Project string `json:"project"` + Epics []string `json:"epics"` +} + +type DashSettingsSearch struct { + Pattern string `json:"pattern"` + MatchId int `json:"matchid"` +} + +type DashSettingsLabels struct { + Title string `json:"title"` + Completion string `json:"completion"` +} + +type DashSettings struct { + Labels DashSettingsLabels `json:"labels"` + Expiry time.Time `json:"expiry"` + Jira DashSettingsJira `json:"jira"` + Teams []string `json:"teams"` + ProductOwners []string `json:"productowners"` + Criteria DashSettingsSearch `json:"criteria"` +} + +func LoadSettings(path string) (*DashSettings, error) { + var err error + var settings *DashSettings = &DashSettings{} + + //check file exists, load, deserialize + _, err = os.Stat(path) + if err == nil { + rawbytes, err := os.ReadFile(path) + + if err == nil { + err = json.Unmarshal(rawbytes, settings) + } + } + return settings, err +}