New file creation
This commit is contained in:
parent
71837cf160
commit
8b9d841c7c
8
file.go
8
file.go
@ -30,6 +30,7 @@ import (
|
|||||||
type file struct {
|
type file struct {
|
||||||
path string
|
path string
|
||||||
meta map[string]interface{}
|
meta map[string]interface{}
|
||||||
|
buff *bytes.Buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) Path() string {
|
func (f *file) Path() string {
|
||||||
@ -50,6 +51,10 @@ func (f *file) SetProperty(key string, value interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *file) Data() (*bytes.Buffer, error) {
|
func (f *file) Data() (*bytes.Buffer, error) {
|
||||||
|
if f.buff != nil {
|
||||||
|
return f.buff, nil
|
||||||
|
}
|
||||||
|
|
||||||
file, err := os.Open(f.path)
|
file, err := os.Open(f.path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -61,5 +66,6 @@ func (f *file) Data() (*bytes.Buffer, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &buff, nil
|
f.buff = &buff
|
||||||
|
return f.buff, nil
|
||||||
}
|
}
|
||||||
|
14
goldsmith.go
14
goldsmith.go
@ -64,7 +64,7 @@ func (gs *goldsmith) scan() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
gs.files <- &file{path, make(map[string]interface{})}
|
gs.files <- gs.NewFile(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -82,12 +82,16 @@ func (gs *goldsmith) stage() stage {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gs *goldsmith) AbsSrcPath(path string) string {
|
func (gs *goldsmith) SrcPath(path string) string {
|
||||||
return filepath.Join(gs.srcPath, path)
|
return gs.srcPath
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gs *goldsmith) AbsDstPath(path string) string {
|
func (gs *goldsmith) DstPath(path string) string {
|
||||||
return filepath.Join(gs.dstPath, path)
|
return gs.dstPath
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gs *goldsmith) NewFile(path string) File {
|
||||||
|
return &file{path, make(map[string]interface{}), nil}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gs *goldsmith) Apply(p Processor) Applier {
|
func (gs *goldsmith) Apply(p Processor) Applier {
|
||||||
|
6
types.go
6
types.go
@ -25,8 +25,10 @@ package goldsmith
|
|||||||
import "bytes"
|
import "bytes"
|
||||||
|
|
||||||
type Context interface {
|
type Context interface {
|
||||||
AbsSrcPath(path string) string
|
SrcPath(path string) string
|
||||||
AbsDstPath(path string) string
|
DstPath(path string) string
|
||||||
|
|
||||||
|
NewFile(path string) File
|
||||||
}
|
}
|
||||||
|
|
||||||
type File interface {
|
type File interface {
|
||||||
|
Loading…
Reference in New Issue
Block a user