refactored logging and browsers init

This commit is contained in:
Chakib Ben Ziane 2019-03-01 19:03:48 +01:00
parent 509af26a61
commit 8130ed9ee2
10 changed files with 50 additions and 50 deletions

View File

@ -13,7 +13,6 @@ import (
"gomark/database"
"gomark/index"
"gomark/parsing"
"gomark/profiles"
"gomark/tree"
"gomark/watch"
"io"
@ -49,6 +48,8 @@ type BrowserPaths struct {
type IBrowser interface {
IWatchable
Name() string // Browser name
Init() error // browser initializiation goes here
RegisterHooks(...parsing.Hook)
Load() error // Loads bookmarks to db without watching
@ -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 {
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)
}

View File

@ -1,6 +1,7 @@
package main
import (
"gomark/chrome"
"gomark/database"
"gomark/parsing"
"gomark/tree"
@ -17,7 +18,6 @@ import (
//TODO: replace with new profile manager
var ChromeData = BrowserPaths{
BookmarkFile: "Bookmarks",
BookmarkDir: "/home/spike/.config/google-chrome-unstable/Default/",
}
@ -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
View File

@ -0,0 +1,5 @@
package chrome
const (
BookmarkFile = "Bookmarks"
)

View File

@ -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
}

View File

@ -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)
}
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)

View File

@ -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{

View File

@ -1,14 +0,0 @@
package mozilla
import (
"gomark/logging"
)
const (
BookmarkFile = "places.sqlite"
)
var (
log = logging.GetLogger("FF")
ConfigFolder = "$HOME/.mozilla/firefox"
)

View File

@ -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,
}

View File

@ -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,

View File

@ -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)
}