Skip to content

Commit

Permalink
refactor(render): filewriting in render pkg
Browse files Browse the repository at this point in the history
  • Loading branch information
sh0rez committed May 12, 2020
1 parent f284bff commit 14e9fc8
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 284 deletions.
234 changes: 0 additions & 234 deletions fast/main.go

This file was deleted.

29 changes: 18 additions & 11 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package main

import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"path/filepath"

"github.com/go-clix/cli"

Expand All @@ -20,19 +19,27 @@ func main() {
Short: "Utility to parse and transform Jsonnet code that uses the docsonnet extension",
}

output := root.Flags().StringP("output", "o", "docs", "directory to write the .md files to")
dir := root.Flags().StringP("output", "o", "docs", "directory to write the .md files to")
outputMd := root.Flags().Bool("md", true, "render as markdown files")
outputJSON := root.Flags().Bool("json", false, "print loaded docsonnet as JSON")

root.Run = func(cmd *cli.Command, args []string) error {
pkg, err := docsonnet.Load(args[0])
if err != nil {
return err
}
file := args[0]

data := render.Render(*pkg)
for k, v := range data {
fmt.Println(k)
if err := ioutil.WriteFile(filepath.Join(*output, k), []byte(v), 0644); err != nil {
switch {
case *outputJSON:
model, err := docsonnet.Load(file)
if err != nil {
return err
}
data, err := json.MarshalIndent(model, "", " ")
if err != nil {
return err
}

fmt.Println(string(data))
case *outputMd:
return render.To(file, *dir)
}

return nil
Expand Down
5 changes: 0 additions & 5 deletions pkg/docsonnet/fast.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"
"log"
"strings"
"time"
)

// load docsonnet
Expand All @@ -13,10 +12,7 @@ import (
// - only map[string]interface{} and fields
// - fields (#...) coming first
func fastLoad(d DS) Package {
start := time.Now()

pkg := d.Package()
fmt.Println("load", pkg.Name)

pkg.API = make(Fields)
pkg.Sub = make(map[string]Package)
Expand Down Expand Up @@ -51,7 +47,6 @@ func fastLoad(d DS) Package {
}
}

fmt.Println("done load", pkg.Name, time.Since(start))
return pkg
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/docsonnet/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ func Load(filename string) (*Package, error) {
// invoke load.libsonnet
vm.ExtCode("main", fmt.Sprintf(`(import "%s")`, filename))

log.Println("evaluating Jsonnet")
log.Println("Evaluating Jsonnet")
data, err := vm.EvaluateSnippet("load.libsonnet", string(load))
if err != nil {
return nil, err
}

log.Println("parsing result")
log.Println("Transforming result")
// parse the result
var d DS
if err := json.Unmarshal([]byte(data), &d); err != nil {
Expand Down
32 changes: 32 additions & 0 deletions pkg/render/fs.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package render

import (
"io/ioutil"
"log"
"os"
"path/filepath"

"github.com/sh0rez/docsonnet/pkg/docsonnet"
)

func To(api, out string) error {
pkg, err := docsonnet.Load(api)
if err != nil {
return err
}

if err := os.MkdirAll(out, os.ModePerm); err != nil {
return err
}

log.Println("Rendering .md files")
data := Render(*pkg)
for k, v := range data {
if err := ioutil.WriteFile(filepath.Join(out, k), []byte(v), 0644); err != nil {
return err
}
}

log.Printf("Success! Rendered %v packages from '%s' to '%s'", len(data), api, out)
return nil
}
28 changes: 0 additions & 28 deletions pkg/render/paths.go

This file was deleted.

Loading

0 comments on commit 14e9fc8

Please sign in to comment.