gosuki/commands.go

71 lines
1.1 KiB
Go
Raw Normal View History

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
)
var startServerCmd = &cli.Command{
2019-02-18 18:44:27 +00:00
Name: "server",
Aliases: []string{"s"},
Usage: "run browser watchers",
Action: startServer,
}
func startServer(c *cli.Context) error {
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
return nil
2019-02-18 18:44:27 +00:00
}