diff --git a/notification/doc.go b/lib/notification/doc.go similarity index 100% rename from notification/doc.go rename to lib/notification/doc.go diff --git a/notification/notify_darwin.go b/lib/notification/notify_darwin.go similarity index 100% rename from notification/notify_darwin.go rename to lib/notification/notify_darwin.go diff --git a/notification/notify_linux.go b/lib/notification/notify_linux.go similarity index 100% rename from notification/notify_linux.go rename to lib/notification/notify_linux.go diff --git a/notification/notify_unsupported.go b/lib/notification/notify_unsupported.go similarity index 100% rename from notification/notify_unsupported.go rename to lib/notification/notify_unsupported.go diff --git a/notification/notify_windows.go b/lib/notification/notify_windows.go similarity index 100% rename from notification/notify_windows.go rename to lib/notification/notify_windows.go diff --git a/lib/open/doc.go b/lib/open/doc.go new file mode 100644 index 0000000..367ffb7 --- /dev/null +++ b/lib/open/doc.go @@ -0,0 +1,4 @@ +// Package open contains a simple cross-platform way to open files in the program the OS wants to use. +// +// Based on https://github.com/skratchdot/open-golang +package open diff --git a/lib/open/open.go b/lib/open/open.go new file mode 100644 index 0000000..3fde8e3 --- /dev/null +++ b/lib/open/open.go @@ -0,0 +1,27 @@ +// +build !windows,!darwin + +// gomuks - A terminal Matrix client written in Go. +// Copyright (C) 2018 Tulir Asokan +// +// 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 . + +package open + +import ( + "os/exec" +) + +func Open(input string) error { + return exec.Command("xdg-open", input).Start() +} diff --git a/lib/open/open_darwin.go b/lib/open/open_darwin.go new file mode 100644 index 0000000..9f53ef5 --- /dev/null +++ b/lib/open/open_darwin.go @@ -0,0 +1,25 @@ +// gomuks - A terminal Matrix client written in Go. +// Copyright (C) 2018 Tulir Asokan +// +// 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 . + +package open + +import ( + "os/exec" +) + +func Open(input string) error { + return exec.Command("open", input).Start() +} diff --git a/lib/open/open_windows.go b/lib/open/open_windows.go new file mode 100644 index 0000000..aced662 --- /dev/null +++ b/lib/open/open_windows.go @@ -0,0 +1,29 @@ +// gomuks - A terminal Matrix client written in Go. +// Copyright (C) 2018 Tulir Asokan +// +// 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 . + +package open + +import ( + "os/exec" +) + +const FileProtocolHandler = "url.dll,FileProtocolHandler" + +var RunDLL32 = filepath.Join(os.Getenv("SYSTEMROOT"), "System32", "rundll32.exe") + +func Open(input string) error { + return exec.Command(RunDLL32, FileProtocolHandler, input).Start() +} diff --git a/ui/view-main.go b/ui/view-main.go index a97f9b2..3a6c38d 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -29,9 +29,9 @@ import ( "maunium.net/go/gomuks/config" "maunium.net/go/gomuks/debug" "maunium.net/go/gomuks/interface" + "maunium.net/go/gomuks/lib/notification" "maunium.net/go/gomuks/matrix/pushrules" "maunium.net/go/gomuks/matrix/rooms" - "maunium.net/go/gomuks/notification" "maunium.net/go/gomuks/ui/messages" "maunium.net/go/gomuks/ui/widget" "maunium.net/go/tview"