2020-05-12 15:23:24 +02:00
|
|
|
package render
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"os"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
|
2021-06-03 14:58:12 +02:00
|
|
|
"github.com/jsonnet-libs/docsonnet/pkg/docsonnet"
|
2020-05-12 15:23:24 +02:00
|
|
|
)
|
|
|
|
|
|
2020-05-12 22:48:02 +02:00
|
|
|
func To(pkg docsonnet.Package, dir string, opts Opts) (int, error) {
|
|
|
|
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil {
|
|
|
|
|
return 0, err
|
2020-05-12 15:23:24 +02:00
|
|
|
}
|
|
|
|
|
|
2020-05-12 22:48:02 +02:00
|
|
|
data := Render(pkg, opts)
|
2020-05-12 15:23:24 +02:00
|
|
|
|
2020-05-12 22:48:02 +02:00
|
|
|
n := 0
|
2020-05-12 15:23:24 +02:00
|
|
|
for k, v := range data {
|
2021-06-04 15:33:41 +02:00
|
|
|
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 {
|
2020-05-12 22:48:02 +02:00
|
|
|
return n, err
|
2020-05-12 15:23:24 +02:00
|
|
|
}
|
2020-05-12 22:48:02 +02:00
|
|
|
n++
|
2020-05-12 15:23:24 +02:00
|
|
|
}
|
|
|
|
|
|
2020-05-12 22:48:02 +02:00
|
|
|
return n, nil
|
2020-05-12 15:23:24 +02:00
|
|
|
}
|