2019-02-18 18:44:27 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
2020-11-06 17:50:36 +00:00
|
|
|
"git.sp4ke.xyz/sp4ke/gomark/parsing"
|
|
|
|
"git.sp4ke.xyz/sp4ke/gomark/utils"
|
2020-08-12 18:15:17 +00:00
|
|
|
|
2020-11-06 17:50:36 +00:00
|
|
|
"git.sp4ke.xyz/sp4ke/gum"
|
2019-02-26 18:41:02 +00:00
|
|
|
|
2020-08-12 18:13:01 +00:00
|
|
|
"github.com/urfave/cli/v2"
|
2019-02-18 18:44:27 +00:00
|
|
|
)
|
|
|
|
|
2020-08-12 19:11:48 +00:00
|
|
|
var startServerCmd = &cli.Command{
|
2019-02-18 18:44:27 +00:00
|
|
|
Name: "server",
|
|
|
|
Aliases: []string{"s"},
|
|
|
|
Usage: "run browser watchers",
|
|
|
|
Action: startServer,
|
|
|
|
}
|
|
|
|
|
2020-08-12 19:11:48 +00:00
|
|
|
func startServer(c *cli.Context) error {
|
2020-09-09 13:07:29 +00:00
|
|
|
defer utils.CleanFiles()
|
2019-02-18 18:44:27 +00:00
|
|
|
manager := gum.NewManager()
|
|
|
|
manager.ShutdownOn(os.Interrupt)
|
|
|
|
|
|
|
|
api := NewApi()
|
|
|
|
manager.AddUnit(api)
|
|
|
|
|
|
|
|
go manager.Run()
|
|
|
|
|
|
|
|
// Initialize sqlite database available in global `cacheDB` variable
|
|
|
|
initDB()
|
|
|
|
|
2019-02-22 18:50:26 +00:00
|
|
|
var browsers []IBrowser
|
|
|
|
|
|
|
|
ff := NewFFBrowser()
|
|
|
|
if ff != nil {
|
|
|
|
browsers = append(browsers, ff)
|
|
|
|
}
|
|
|
|
|
2020-09-01 12:43:01 +00:00
|
|
|
//cr := NewChromeBrowser()
|
|
|
|
//if cr != nil {
|
|
|
|
//browsers = append(browsers, cr)
|
|
|
|
//}
|
2019-02-18 18:44:27 +00:00
|
|
|
|
|
|
|
for _, b := range browsers {
|
|
|
|
defer b.Shutdown()
|
|
|
|
b.RegisterHooks(parsing.ParseTags)
|
2019-03-01 17:30:50 +00:00
|
|
|
|
|
|
|
err := b.Init()
|
|
|
|
if err != nil {
|
2019-03-01 18:41:44 +00:00
|
|
|
log.Criticalf("<%s> %s", b, err)
|
2019-03-01 17:30:50 +00:00
|
|
|
b.Shutdown()
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
|
|
|
err = b.Load()
|
|
|
|
if err != nil {
|
2019-03-01 18:41:44 +00:00
|
|
|
log.Criticalf("<%s> %s", b, err)
|
2019-03-01 17:30:50 +00:00
|
|
|
b.Shutdown()
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
2019-02-18 18:44:27 +00:00
|
|
|
b.Watch()
|
|
|
|
}
|
|
|
|
|
|
|
|
<-manager.Quit
|
2020-08-12 19:11:48 +00:00
|
|
|
|
|
|
|
return nil
|
2019-02-18 18:44:27 +00:00
|
|
|
}
|