Improved error logging
This commit is contained in:
parent
739518ad77
commit
f20984e6f0
@ -45,7 +45,7 @@ func (ctx *context) chain() {
|
|||||||
var err error
|
var err error
|
||||||
filters, err = initializer.Initialize(ctx)
|
filters, err = initializer.Initialize(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.gs.fault(nil, err)
|
ctx.gs.fault(ctx.plug.Name(), nil, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,10 +77,10 @@ func (ctx *context) chain() {
|
|||||||
|
|
||||||
if accept {
|
if accept {
|
||||||
if _, err := f.Seek(0, os.SEEK_SET); err != nil {
|
if _, err := f.Seek(0, os.SEEK_SET); err != nil {
|
||||||
ctx.gs.fault(f, err)
|
ctx.gs.fault("core", f, err)
|
||||||
}
|
}
|
||||||
if err := processor.Process(ctx, f); err != nil {
|
if err := processor.Process(ctx, f); err != nil {
|
||||||
ctx.gs.fault(f, err)
|
ctx.gs.fault(ctx.plug.Name(), f, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ctx.output <- f
|
ctx.output <- f
|
||||||
@ -93,7 +93,7 @@ func (ctx *context) chain() {
|
|||||||
|
|
||||||
if finalizer, ok := ctx.plug.(Finalizer); ok {
|
if finalizer, ok := ctx.plug.(Finalizer); ok {
|
||||||
if err := finalizer.Finalize(ctx); err != nil {
|
if err := finalizer.Finalize(ctx); err != nil {
|
||||||
ctx.gs.fault(nil, err)
|
ctx.gs.fault(ctx.plug.Name(), nil, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
core.go
4
core.go
@ -85,11 +85,11 @@ func (gs *goldsmith) exportFile(f *file) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gs *goldsmith) fault(f *file, err error) {
|
func (gs *goldsmith) fault(name string, f *file, err error) {
|
||||||
gs.errorMtx.Lock()
|
gs.errorMtx.Lock()
|
||||||
defer gs.errorMtx.Unlock()
|
defer gs.errorMtx.Unlock()
|
||||||
|
|
||||||
ferr := &Error{Err: err}
|
ferr := &Error{Name: name, Err: err}
|
||||||
if f != nil {
|
if f != nil {
|
||||||
ferr.Path = f.path
|
ferr.Path = f.path
|
||||||
}
|
}
|
||||||
|
15
goldsmith.go
15
goldsmith.go
@ -25,6 +25,7 @@ package goldsmith
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
@ -97,12 +98,18 @@ type Context interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Error struct {
|
type Error struct {
|
||||||
Err error
|
Name string
|
||||||
Path string
|
Path string
|
||||||
|
Err error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e Error) Error() string {
|
func (e Error) Error() string {
|
||||||
return e.Err.Error()
|
var path string
|
||||||
|
if len(e.Path) > 0 {
|
||||||
|
path = "@" + e.Path
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("[%s%s]: %s", e.Name, path, e.Err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
type Initializer interface {
|
type Initializer interface {
|
||||||
@ -117,4 +124,6 @@ type Finalizer interface {
|
|||||||
Finalize(ctx Context) error
|
Finalize(ctx Context) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type Plugin interface{}
|
type Plugin interface {
|
||||||
|
Name() string
|
||||||
|
}
|
||||||
|
@ -26,6 +26,10 @@ import "path/filepath"
|
|||||||
|
|
||||||
type loader struct{}
|
type loader struct{}
|
||||||
|
|
||||||
|
func (*loader) Name() string {
|
||||||
|
return "loader"
|
||||||
|
}
|
||||||
|
|
||||||
func (*loader) Initialize(ctx Context) ([]string, error) {
|
func (*loader) Initialize(ctx Context) ([]string, error) {
|
||||||
infos := make(chan fileInfo)
|
infos := make(chan fileInfo)
|
||||||
go scanDir(ctx.SrcDir(), infos)
|
go scanDir(ctx.SrcDir(), infos)
|
||||||
|
Loading…
Reference in New Issue
Block a user