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