d2: Indicate whether partial render was written in default build
This commit is contained in:
parent
206d3eecb8
commit
eb1868cd0d
2 changed files with 15 additions and 12 deletions
|
|
@ -169,23 +169,26 @@ func run(ctx context.Context, ms *xmain.State) (err error) {
|
||||||
ctx, cancel := context.WithTimeout(ctx, time.Minute*2)
|
ctx, cancel := context.WithTimeout(ctx, time.Minute*2)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
_, err = compile(ctx, ms, plugin, *themeFlag, inputPath, outputPath, *bundleFlag, pw.Page)
|
_, written, err := compile(ctx, ms, plugin, *themeFlag, inputPath, outputPath, *bundleFlag, pw.Page)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if written {
|
||||||
|
return fmt.Errorf("failed to compile (partial render written): %w", err)
|
||||||
|
}
|
||||||
return fmt.Errorf("failed to compile: %w", err)
|
return fmt.Errorf("failed to compile: %w", err)
|
||||||
}
|
}
|
||||||
ms.Log.Success.Printf("successfully compiled %v to %v", inputPath, outputPath)
|
ms.Log.Success.Printf("successfully compiled %v to %v", inputPath, outputPath)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, themeID int64, inputPath, outputPath string, bundle bool, page playwright.Page) ([]byte, error) {
|
func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, themeID int64, inputPath, outputPath string, bundle bool, page playwright.Page) (_ []byte, written bool, _ error) {
|
||||||
input, err := ms.ReadPath(inputPath)
|
input, err := ms.ReadPath(inputPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ruler, err := textmeasure.NewRuler()
|
ruler, err := textmeasure.NewRuler()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
layout := plugin.Layout
|
layout := plugin.Layout
|
||||||
|
|
@ -199,16 +202,16 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, theme
|
||||||
ThemeID: themeID,
|
ThemeID: themeID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
svg, err := d2svg.Render(d)
|
svg, err := d2svg.Render(d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
svg, err = plugin.PostProcess(ctx, svg)
|
svg, err = plugin.PostProcess(ctx, svg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return svg, err
|
return svg, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
svg, bundleErr := imgbundler.BundleLocal(ctx, ms, svg)
|
svg, bundleErr := imgbundler.BundleLocal(ctx, ms, svg)
|
||||||
|
|
@ -229,16 +232,16 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, theme
|
||||||
|
|
||||||
out, err = png.ConvertSVG(ms, page, svg)
|
out, err = png.ConvertSVG(ms, page, svg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return svg, err
|
return svg, false, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ms.WritePath(outputPath, out)
|
err = ms.WritePath(outputPath, out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return svg, err
|
return svg, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return svg, bundleErr
|
return svg, true, bundleErr
|
||||||
}
|
}
|
||||||
|
|
||||||
// newExt must include leading .
|
// newExt must include leading .
|
||||||
|
|
|
||||||
|
|
@ -346,11 +346,11 @@ func (w *watcher) compileLoop(ctx context.Context) error {
|
||||||
w.pw = newPW
|
w.pw = newPW
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := compile(ctx, w.ms, w.layoutPlugin, w.themeID, w.inputPath, w.outputPath, w.bundle, w.pw.Page)
|
b, _, err := compile(ctx, w.ms, w.layoutPlugin, w.themeID, w.inputPath, w.outputPath, w.bundle, w.pw.Page)
|
||||||
errs := ""
|
errs := ""
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if len(b) > 0 {
|
if len(b) > 0 {
|
||||||
err = fmt.Errorf("failed to %scompile (rendering partial output): %w", recompiledPrefix, err)
|
err = fmt.Errorf("failed to %scompile (rendering partial svg): %w", recompiledPrefix, err)
|
||||||
} else {
|
} else {
|
||||||
err = fmt.Errorf("failed to %scompile: %w", recompiledPrefix, err)
|
err = fmt.Errorf("failed to %scompile: %w", recompiledPrefix, err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue