pominal/alert.go
Dan Anglin 99ebc86270
refactor: add lint test and refactor code.
- lint test using golangci-lint.
- lint test added as a job in the testing stage.
- code refactoring based on feedback.
2020-01-24 09:51:21 +00:00

63 lines
1.7 KiB
Go

/*
Pominal
Copyright (C) 2019 Daniel Anglin
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package main
import (
"fmt"
"os"
"path/filepath"
"github.com/0xAX/notificator"
)
const iconPath string = "assets/icon/tomato.png"
// initNotifier initialises the new desktop notifier.
func initNotifier() *notificator.Notificator {
return notificator.New(notificator.Options{
DefaultIcon: getNotificationIconPath(),
AppName: "Pominal",
})
}
// getNotificationIconPath returns the absolute path of the tomoato icon
// used for desktop notifications.
// If there is an error getting the path to the executing program
// then an empty string is returned.
func getNotificationIconPath() string {
var result string
exe, err := os.Executable()
if err != nil {
fmt.Printf("ERROR: Unable to determine path to this executable. %s", err.Error())
return result
}
result = filepath.Dir(exe) + "/" + iconPath
return result
}
// alert creates a new desktop notification.
func desktopAlert(l string, notifier *notificator.Notificator) {
title := "Pominal notification."
text := l + " session has started."
_ = notifier.Push(title, text, "", notificator.UR_NORMAL)
}