diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-04-18 18:35:24 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-04-18 18:35:54 +0300 |
commit | b17ff318c26aecdcf2c6719ed5b0872be5254c44 (patch) | |
tree | 43f5f9aa3ce300c15376860727ff13d3716f3751 /main.go | |
parent | 3b2d5fa0349bf01217f6954813c669680cdd16d4 (diff) |
Disconnect UI from main Gomuks struct. Fixes #21
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +// 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 <http://www.gnu.org/licenses/>. + +package main + +import ( + "fmt" + "os" + "time" + + "maunium.net/go/gomuks/debug" + "maunium.net/go/gomuks/interface" + "maunium.net/go/gomuks/ui" +) + +var MainUIProvider ifc.UIProvider = ui.NewGomuksUI + +func main() { + defer debug.Recover() + + enableDebug := len(os.Getenv("DEBUG")) > 0 + debug.RecoverPrettyPanic = !enableDebug + + gmx := NewGomuks(MainUIProvider) + gmx.Start() + + // We use os.Exit() everywhere, so exiting by returning from Start() shouldn't happen. + time.Sleep(5 * time.Second) + fmt.Println("Unexpected exit by return from gmx.Start().") + os.Exit(2) +} |