commit 1ce1fcd85192d534153e3f5b963092d2d69310b4
parent 3a089f62512fe4d36882b665da0bc1f4697fe7ab
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date: Fri, 16 Nov 2018 17:02:29 +1300
[+] Add option to use Chrome to render ui.
github.com/zserge/lorca
Diffstat:
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/cmd/desktop/main.go b/cmd/desktop/main.go
@@ -1,6 +1,11 @@
package main
import (
+ "context"
+ "syscall"
+ "os/signal"
+ "os"
+ "github.com/zserge/lorca"
"flag"
"fmt"
"log"
@@ -25,6 +30,7 @@ var (
verbose bool
headless bool
browser bool
+ chrome bool
static http.Handler // responsible for serving UI files.
)
@@ -35,6 +41,7 @@ func init() {
flag.BoolVar(&verbose, "v", false, "verbose mode")
flag.BoolVar(&headless, "headless", false, "headless mode; run only the server")
flag.BoolVar(&browser, "browser", false, "open in default browser instead of webview; overriden by [headless]")
+ flag.BoolVar(&chrome, "chrome", false, "use chrome to render the UI instead of the native webview")
flag.Parse()
if devServer != "" {
t, err := url.Parse(devServer)
@@ -93,9 +100,21 @@ func main() {
log.Printf("restarting browser")
},
}
- if err := b.Open(url); err != nil {
+ if err := b.Run(url); err != nil {
log.Fatalf("opening browser: %v", err)
}
+ } else if chrome {
+ b, err := lorca.New(url, "", 800, 600)
+ if err != nil {
+ log.Fatalf("opening chrome: %v", err)
+ }
+ defer b.Close()
+ sigc := make(chan os.Signal)
+ signal.Notify(sigc, os.Interrupt, syscall.SIGTERM)
+ select {
+ case <-sigc:
+ case <-b.Done():
+ }
} else {
view := webview.New(webview.Settings{
Title: "Giffer",
@@ -107,4 +126,7 @@ func main() {
})
view.Run()
}
+ if err := svr.Shutdown(context.Background()); err != nil {
+ log.Printf("shutting down server: %v", err)
+ }
}
diff --git a/go.mod b/go.mod
@@ -12,6 +12,7 @@ require (
github.com/jackmordaunt/video-downloader v0.0.0-20181113035814-f0fc43af906f
github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 // indirect
github.com/pkg/errors v0.8.0
+ github.com/zserge/lorca v0.1.0
github.com/zserge/webview v0.0.0-20181018084947-f390a2df9ec5
golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869
)
diff --git a/go.sum b/go.sum
@@ -43,11 +43,14 @@ github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/zserge/lorca v0.1.0 h1:2kD6J29C7lMT8gfiFSgItrNT7FC8M71arC9AMDqch9o=
+github.com/zserge/lorca v0.1.0/go.mod h1:gTrVdXKyWxNhc8aUb1Uu3s0mY343arR1T6jUtxmBxR8=
github.com/zserge/webview v0.0.0-20181018084947-f390a2df9ec5 h1:1zYVGLwZR4gPRQdEiOBf9s63ZHGfCkQ/p99d1zHuZBQ=
github.com/zserge/webview v0.0.0-20181018084947-f390a2df9ec5/go.mod h1:a1CV8KR4Dd1eP2g+mEijGOp+HKczwdKHWyx0aPHKvo4=
golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869 h1:kkXA53yGe04D0adEYJwEVQjeBppL01Exg+fnMjfUraU=
golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181108082009-03003ca0c849 h1:FSqE2GGG7wzsYUsWiQ8MZrvEd1EOyU3NCF0AW3Wtltg=
golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8 h1:YoY1wS6JYVRpIfFngRf2HHo9R9dAne3xbkGOQ5rJXjU=