store tomato icon in config path

This commit is contained in:
Kevin Schoon 2018-01-28 19:27:13 -05:00
parent 31f1cfaa4e
commit d7863cb264
2 changed files with 12 additions and 10 deletions

View File

@ -9,9 +9,9 @@ import (
"time"
)
func notifier() Notifier {
func notifier(iconPath string) Notifier {
if runtime.GOOS == "linux" {
return NewLibNotifier()
return NewLibNotifier(iconPath)
}
return NoopNotifier{}
}
@ -37,7 +37,7 @@ func start(path *string) func(*cli.Cmd) {
NPomodoros: *pomodoros,
Duration: parsed,
}
runner, err := NewTaskRunner(task, db, notifier())
runner, err := NewTaskRunner(task, db, notifier(*path+"/icon.png"))
maybe(err)
runner.Start()
startUI(runner)

View File

@ -159,16 +159,18 @@ type LibNotifier struct {
iconPath string
}
func NewLibNotifier() Notifier {
func NewLibNotifier(iconPath string) Notifier {
ln := &LibNotifier{
client: libnotify.NewClient(),
}
// Write the tomato icon to a temp path
raw := MustAsset("tomato-icon.png")
fp, _ := ioutil.TempFile("", "pomo")
fp.Write(raw)
ln.iconPath = fp.Name()
fp.Close()
// Write the built-in tomato icon if it
// doesn't already exist.
_, err := os.Stat(iconPath)
if os.IsNotExist(err) {
raw := MustAsset("tomato-icon.png")
ioutil.WriteFile(iconPath, raw, 0644)
}
ln.iconPath = iconPath
return ln
}