gosuki/commands.go

74 lines
1.4 KiB
Go
Raw Normal View History

2019-02-18 18:44:27 +00:00
package main
import (
"os"
"git.sp4ke.xyz/sp4ke/gomark/browsers"
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()
registeredBrowsers := browsers.Modules()
log.Debugf("registered browsers: %v", registeredBrowsers)
2019-02-22 18:50:26 +00:00
//TODO: instanciate all browsers
2019-02-18 18:44:27 +00:00
for _, b := range registeredBrowsers {
defer b.Browser.Shutdown()
log.Debugf("new browser instance with path %s", b.Browser.GetBookmarksPath())
b.Browser.RegisterHooks(parsing.ParseTags)
2019-03-01 17:30:50 +00:00
//TODO: call the setup logic for init,load for each browser instance
err := browsers.Setup(b.Browser)
2019-03-01 17:30:50 +00:00
if err != nil {
2019-03-01 18:41:44 +00:00
log.Criticalf("<%s> %s", b, err)
b.Browser.Shutdown()
2019-03-01 17:30:50 +00:00
continue
}
// err := b.Init()
// if err != nil {
// log.Criticalf("<%s> %s", b, err)
// b.Shutdown()
// continue
// }
//
// err = b.Load()
// if err != nil {
// log.Criticalf("<%s> %s", b, err)
// b.Shutdown()
// continue
// }
b.Browser.Watch()
2019-02-18 18:44:27 +00:00
}
<-manager.Quit
return nil
2019-02-18 18:44:27 +00:00
}