40 lines
706 B
Go
40 lines
706 B
Go
|
package tins2020
|
||
|
|
||
|
import (
|
||
|
rice "github.com/GeertJohan/go.rice"
|
||
|
"github.com/spf13/afero"
|
||
|
"opslag.de/schobers/fs/ricefs"
|
||
|
"opslag.de/schobers/fs/vfs"
|
||
|
)
|
||
|
|
||
|
type Resources struct {
|
||
|
box *rice.Box
|
||
|
fs afero.Fs
|
||
|
copy vfs.CopyDir
|
||
|
}
|
||
|
|
||
|
func (r *Resources) Destroy() {
|
||
|
r.copy.Destroy()
|
||
|
}
|
||
|
|
||
|
func (r *Resources) Fs() afero.Fs {
|
||
|
return r.fs
|
||
|
}
|
||
|
|
||
|
func (r *Resources) Open(box *rice.Box) error {
|
||
|
r.box = box
|
||
|
r.fs = vfs.NewOsFsFallback(r.box.Name(), ricefs.NewFs(box))
|
||
|
copy, err := vfs.NewCopyDir(r.fs)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
r.copy = copy
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (r *Resources) Copy() vfs.CopyDir { return r.copy }
|
||
|
|
||
|
func (r *Resources) Retrieve(name string) (string, error) {
|
||
|
return r.copy.Retrieve(name)
|
||
|
}
|