docsonnet/pkg/render/fs.go
Jeroen Op 't Eynde 5776ff829f
feat: render directory structure instead of flat file names (#20)
* feat: render directory structure instead of flat file names

* add gitignore
2021-06-04 15:33:41 +02:00

32 lines
585 B
Go

package render
import (
"io/ioutil"
"os"
"path/filepath"
"github.com/jsonnet-libs/docsonnet/pkg/docsonnet"
)
func To(pkg docsonnet.Package, dir string, opts Opts) (int, error) {
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return 0, err
}
data := Render(pkg, opts)
n := 0
for k, v := range data {
fullpath := filepath.Join(dir, k)
dir := filepath.Dir(fullpath)
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return n, err
}
if err := ioutil.WriteFile(fullpath, []byte(v), 0644); err != nil {
return n, err
}
n++
}
return n, nil
}