diff options
author | Andinus <andinus@nand.sh> | 2020-03-25 00:13:51 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2020-03-25 00:13:51 +0530 |
commit | 3ee3715ae7777dd6c1804974e2e293406fd1fe54 (patch) | |
tree | f035e76ff9ce48d03299381d03906eaff76140dc /notification | |
parent | 28e35c0b0b996e17bd94a5b9e78fda90086ba85e (diff) | |
download | cetus-3ee3715ae7777dd6c1804974e2e293406fd1fe54.tar.gz |
Add apod support & fix errors
Diffstat (limited to 'notification')
-rw-r--r-- | notification/notif.go | 8 | ||||
-rw-r--r-- | notification/notify_darwin.go | 25 | ||||
-rw-r--r-- | notification/notify_unix.go | 21 |
3 files changed, 54 insertions, 0 deletions
diff --git a/notification/notif.go b/notification/notif.go new file mode 100644 index 0000000..b436c19 --- /dev/null +++ b/notification/notif.go @@ -0,0 +1,8 @@ +package notification + +// Notif struct holds information about the notification. Other +// parameters like urgency & timeout could be added when required. +type Notif struct { + Title string + Message string +} diff --git a/notification/notify_darwin.go b/notification/notify_darwin.go new file mode 100644 index 0000000..bddaf9e --- /dev/null +++ b/notification/notify_darwin.go @@ -0,0 +1,25 @@ +// +build darwin + +package notification + +import ( + "fmt" + "os/exec" + "strconv" +) + +// Notify sends a desktop notification to the user using osascript. It +// handles information in the form of Notif struct. It returns an +// error (if exists). +func (n Notif) Notify() error { + // This script cuts out parts of notification, this bug was + // confirmed on macOS Catalina 10.15.3, fix not yet known. + err := exec.Command("osascript", "-e", + `display notification `+strconv.Quote(n.Message)+` with title `+strconv.Quote(n.Title)).Run() + if err != nil { + err = fmt.Errorf("%s\n%s", + "notify_darwin.go: failed to sent notification with osascript", + err.Error()) + } + return err +} diff --git a/notification/notify_unix.go b/notification/notify_unix.go new file mode 100644 index 0000000..a6fc3ac --- /dev/null +++ b/notification/notify_unix.go @@ -0,0 +1,21 @@ +// +build linux netbsd openbsd freebsd dragonfly + +package notification + +import ( + "fmt" + "os/exec" +) + +// Notify sends a desktop notification to the user using libnotify. It +// handles information in the form of Notif struct. It returns an +// error (if exists). +func (n Notif) Notify() error { + err := exec.Command("notify-send", n.Title, n.Message).Run() + if err != nil { + err = fmt.Errorf("%s\n%s", + "notify_unix.go: failed to sent notification with notify-send", + err.Error()) + } + return err +} |