This commit is contained in:
Alex Yatskov 2015-12-18 19:49:52 +09:00
parent 6bb87248ab
commit 570c65db08
2 changed files with 23 additions and 10 deletions

28
file.go
View File

@ -40,7 +40,9 @@ type file struct {
func (f *file) rewind() { func (f *file) rewind() {
if f.reader != nil { if f.reader != nil {
f.reader.Seek(0, os.SEEK_SET) if _, err := f.reader.Seek(0, os.SEEK_SET); err != nil {
panic(err)
}
} }
} }
@ -49,20 +51,28 @@ func (f *file) export(dstPath string) error {
return err return err
} }
if err := f.cache(); err != nil { fw, err := os.Create(dstPath)
return err
}
fh, err := os.Create(dstPath)
if err != nil { if err != nil {
return err return err
} }
defer fh.Close() defer fw.Close()
f.rewind() if f.reader == nil {
if _, err := f.WriteTo(fh); err != nil { fr, err := os.Open(f.asset)
if err != nil {
return err return err
} }
defer fr.Close()
if _, err := io.Copy(fw, fr); err != nil {
return err
}
} else {
f.rewind()
if _, err := f.WriteTo(fw); err != nil {
return err
}
}
return nil return nil
} }

View File

@ -85,9 +85,12 @@ func (s *stage) chain(p Plugin) {
wg.Add(1) wg.Add(1)
go func(f *file) { go func(f *file) {
defer wg.Done() defer wg.Done()
f.rewind()
if err := proc.Process(s, f); err != nil { if err := proc.Process(s, f); err != nil {
s.gs.fault(s, f, err) s.gs.fault(s, f, err)
} }
dispatch(f) dispatch(f)
}(f) }(f)
} }