refactored logging and browsers init
This commit is contained in:
parent
509af26a61
commit
8130ed9ee2
29
browsers.go
29
browsers.go
@ -13,7 +13,6 @@ import (
|
||||
"gomark/database"
|
||||
"gomark/index"
|
||||
"gomark/parsing"
|
||||
"gomark/profiles"
|
||||
"gomark/tree"
|
||||
"gomark/watch"
|
||||
"io"
|
||||
@ -49,7 +48,9 @@ type BrowserPaths struct {
|
||||
|
||||
type IBrowser interface {
|
||||
IWatchable
|
||||
Init() error // browser initializiation goes here
|
||||
|
||||
Name() string // Browser name
|
||||
Init() error // browser initializiation goes here
|
||||
RegisterHooks(...parsing.Hook)
|
||||
Load() error // Loads bookmarks to db without watching
|
||||
Shutdown() // Graceful shutdown, it should call the BaseBrowser.Close()
|
||||
@ -96,9 +97,6 @@ type BaseBrowser struct {
|
||||
|
||||
baseInit bool
|
||||
bufferInit bool
|
||||
|
||||
//TODO: profile manager here
|
||||
ProfileManager profiles.ProfileManager
|
||||
}
|
||||
|
||||
func (bw *BaseBrowser) GetWatcher() *Watcher {
|
||||
@ -109,8 +107,12 @@ func (bw *BaseBrowser) GetWatcher() *Watcher {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (bw *BaseBrowser) Name() string {
|
||||
return bw.name
|
||||
}
|
||||
|
||||
func (bw *BaseBrowser) Load() error {
|
||||
log.Debug("base loader")
|
||||
|
||||
if !bw.baseInit {
|
||||
return fmt.Errorf("base init on <%s> missing, call Init() on BaseBrowser !", bw.name)
|
||||
@ -194,13 +196,15 @@ func (bw *BaseBrowser) ResetWatcher() {
|
||||
}
|
||||
|
||||
func (bw *BaseBrowser) Close() error {
|
||||
err := bw.watcher.W.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
if bw.watcher != nil {
|
||||
err := bw.watcher.W.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if bw.bufferInit {
|
||||
err = bw.BufferDB.Close()
|
||||
err := bw.BufferDB.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -218,7 +222,6 @@ func (b *BaseBrowser) Shutdown() {
|
||||
}
|
||||
|
||||
func (b *BaseBrowser) Init() error {
|
||||
log.Debug("base init")
|
||||
|
||||
// Init browser buffer
|
||||
err := b.initBuffer()
|
||||
@ -236,7 +239,7 @@ func (b *BaseBrowser) Init() error {
|
||||
}
|
||||
|
||||
func (b *BaseBrowser) RebuildIndex() {
|
||||
log.Debugf("Rebuilding index based on current nodeTree")
|
||||
log.Debugf("<%s> rebuilding index based on current nodeTree", b.name)
|
||||
b.URLIndex = index.NewIndex()
|
||||
tree.WalkBuildIndex(b.NodeTree, b.URLIndex)
|
||||
}
|
||||
@ -268,7 +271,7 @@ func (b *BaseBrowser) initBuffer() error {
|
||||
}
|
||||
|
||||
func (b *BaseBrowser) RegisterHooks(hooks ...parsing.Hook) {
|
||||
log.Debug("Registering hooks")
|
||||
log.Debugf("<%s> registering hooks", b.name)
|
||||
for _, hook := range hooks {
|
||||
b.parseHooks = append(b.parseHooks, hook)
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"gomark/chrome"
|
||||
"gomark/database"
|
||||
"gomark/parsing"
|
||||
"gomark/tree"
|
||||
@ -17,8 +18,7 @@ import (
|
||||
|
||||
//TODO: replace with new profile manager
|
||||
var ChromeData = BrowserPaths{
|
||||
BookmarkFile: "Bookmarks",
|
||||
BookmarkDir: "/home/spike/.config/google-chrome-unstable/Default/",
|
||||
BookmarkDir: "/home/spike/.config/google-chrome-unstable/Default/",
|
||||
}
|
||||
|
||||
var jsonNodeTypes = struct {
|
||||
@ -86,7 +86,7 @@ func NewChromeBrowser() IBrowser {
|
||||
browser.name = "chrome"
|
||||
browser.bType = TChrome
|
||||
browser.baseDir = ChromeData.BookmarkDir
|
||||
browser.bkFile = ChromeData.BookmarkFile
|
||||
browser.bkFile = chrome.BookmarkFile
|
||||
browser.Stats = new(parsing.Stats)
|
||||
browser.NodeTree = &tree.Node{Name: "root", Parent: nil, Type: "root"}
|
||||
browser.useFileWatcher = true
|
||||
@ -116,7 +116,6 @@ func (bw *ChromeBrowser) Watch() bool {
|
||||
}
|
||||
|
||||
func (bw *ChromeBrowser) Init() error {
|
||||
log.Debug("chrome init")
|
||||
return bw.BaseBrowser.Init()
|
||||
}
|
||||
|
||||
|
5
chrome/config.go
Normal file
5
chrome/config.go
Normal file
@ -0,0 +1,5 @@
|
||||
package chrome
|
||||
|
||||
const (
|
||||
BookmarkFile = "Bookmarks"
|
||||
)
|
@ -46,14 +46,14 @@ func startServer(c *cli.Context) {
|
||||
|
||||
err := b.Init()
|
||||
if err != nil {
|
||||
log.Critical(err)
|
||||
log.Criticalf("<%s> %s", b.Name(), err)
|
||||
b.Shutdown()
|
||||
continue
|
||||
}
|
||||
|
||||
err = b.Load()
|
||||
if err != nil {
|
||||
log.Critical(err)
|
||||
log.Criticalf("<%s> %s", b.Name(), err)
|
||||
b.Shutdown()
|
||||
continue
|
||||
}
|
||||
|
13
firefox.go
13
firefox.go
@ -137,13 +137,17 @@ func NewFFBrowser() IBrowser {
|
||||
}
|
||||
|
||||
func (bw *FFBrowser) Shutdown() {
|
||||
fflog.Debugf("shutting down ... ")
|
||||
|
||||
if bw.places != nil {
|
||||
|
||||
err := bw.places.Close()
|
||||
if err != nil {
|
||||
fflog.Critical(err)
|
||||
}
|
||||
|
||||
err := bw.places.Close()
|
||||
if err != nil {
|
||||
fflog.Critical(err)
|
||||
}
|
||||
|
||||
fflog.Debugf("shutting down ... ")
|
||||
bw.BaseBrowser.Shutdown()
|
||||
}
|
||||
|
||||
@ -160,7 +164,6 @@ func (bw *FFBrowser) Watch() bool {
|
||||
}
|
||||
|
||||
func (browser *FFBrowser) Init() error {
|
||||
log.Debug("ff init")
|
||||
|
||||
// Initialize `places.sqlite`
|
||||
bookmarkPath := path.Join(browser.baseDir, browser.bkFile)
|
||||
|
@ -2,6 +2,16 @@ package mozilla
|
||||
|
||||
import (
|
||||
"gomark/database"
|
||||
"gomark/logging"
|
||||
)
|
||||
|
||||
const (
|
||||
BookmarkFile = "places.sqlite"
|
||||
)
|
||||
|
||||
var (
|
||||
log = logging.GetLogger("FF")
|
||||
ConfigFolder = "$HOME/.mozilla/firefox"
|
||||
)
|
||||
|
||||
var FirefoxDefaultConfig = &FirefoxConfig{
|
@ -1,14 +0,0 @@
|
||||
package mozilla
|
||||
|
||||
import (
|
||||
"gomark/logging"
|
||||
)
|
||||
|
||||
const (
|
||||
BookmarkFile = "places.sqlite"
|
||||
)
|
||||
|
||||
var (
|
||||
log = logging.GetLogger("FF")
|
||||
ConfigFolder = "$HOME/.mozilla/firefox"
|
||||
)
|
@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
type ProfileManager = profiles.ProfileManager
|
||||
type ProfileGetter = profiles.ProfileGetter
|
||||
type INIProfileLoader = profiles.INIProfileLoader
|
||||
type PathGetter = profiles.PathGetter
|
||||
|
||||
const (
|
||||
@ -25,7 +25,7 @@ const (
|
||||
var (
|
||||
ReIniProfiles = regexp.MustCompile(`(?i)profile`)
|
||||
|
||||
firefoxProfile = &ProfileGetter{
|
||||
firefoxProfile = &INIProfileLoader{
|
||||
//BasePath to be set at runtime in init
|
||||
ProfilesFile: ProfilesFile,
|
||||
}
|
||||
|
@ -4,23 +4,17 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
var OkProfile = &ProfileGetter{
|
||||
var OkProfile = &INIProfileLoader{
|
||||
BasePath: "testdata",
|
||||
ProfilesFile: "profiles_ok.ini",
|
||||
}
|
||||
|
||||
var BadProfile = &ProfileGetter{
|
||||
var BadProfile = &INIProfileLoader{
|
||||
BasePath: "testdata",
|
||||
ProfilesFile: "profiles_bad.ini",
|
||||
}
|
||||
|
||||
func TestListProfiles(t *testing.T) {
|
||||
//_, filename, _, _ := runtime.Caller(0)
|
||||
//dir, err := filepath.Abs(filepath.Dir(filename))
|
||||
//if err != nil {
|
||||
//t.Error(err)
|
||||
//}
|
||||
//t.Error(dir)
|
||||
t.Run("OK", func(t *testing.T) {
|
||||
pm := &FFProfileManager{
|
||||
pathGetter: OkProfile,
|
||||
|
@ -29,11 +29,11 @@ type PathGetter interface {
|
||||
Get() string
|
||||
}
|
||||
|
||||
type ProfileGetter struct {
|
||||
type INIProfileLoader struct {
|
||||
BasePath string
|
||||
ProfilesFile string
|
||||
}
|
||||
|
||||
func (pg *ProfileGetter) Get() string {
|
||||
func (pg *INIProfileLoader) Get() string {
|
||||
return filepath.Join(pg.BasePath, pg.ProfilesFile)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user