From 10e13c3716bbfab5fd224caae0a09ad6a16ee1e1 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 29 Nov 2022 13:19:03 -0800 Subject: [PATCH] fixes --- cmd/d2/main.go | 4 +-- lib/imgbundler/imgbundler.go | 20 ++++++++++----- lib/imgbundler/imgbundler_test.go | 42 +++++++++++++++++++++++++++++-- 3 files changed, 56 insertions(+), 10 deletions(-) diff --git a/cmd/d2/main.go b/cmd/d2/main.go index 9e8d290d1..1a7e68eac 100644 --- a/cmd/d2/main.go +++ b/cmd/d2/main.go @@ -205,7 +205,7 @@ func compile(ctx context.Context, ms *xmain.State, isWatching bool, plugin d2plu if err != nil { return nil, err } - svg, err = imgbundler.InlineLocal(svg) + svg, err = imgbundler.InlineLocal(ms, svg) if err != nil { // Missing/broken images are fine during watch mode, as the user is likely building up a diagram. // Otherwise, the assumption is that this diagram is building for production, and broken images are not okay. @@ -217,7 +217,7 @@ func compile(ctx context.Context, ms *xmain.State, isWatching bool, plugin d2plu out := svg if filepath.Ext(outputPath) == ".png" { - svg, err = imgbundler.InlineRemote(svg) + svg, err = imgbundler.InlineRemote(ms, svg) if err != nil { if !isWatching { return nil, err diff --git a/lib/imgbundler/imgbundler.go b/lib/imgbundler/imgbundler.go index 8782bea0e..43cfa5adf 100644 --- a/lib/imgbundler/imgbundler.go +++ b/lib/imgbundler/imgbundler.go @@ -16,6 +16,8 @@ import ( "go.uber.org/multierr" "oss.terrastruct.com/xdefer" + + "oss.terrastruct.com/d2/lib/xmain" ) var imageRe = regexp.MustCompile(` `, svgURL, pngURL) + ms := &xmain.State{ + Name: "test", + + Stdin: os.Stdin, + Stdout: os.Stdout, + Stderr: os.Stderr, + + Env: xos.NewEnv(os.Environ()), + } + ms.Log = cmdlog.Log(ms.Env, os.Stderr) + transport = roundTripFunc(func(req *http.Request) *http.Response { respRecorder := httptest.NewRecorder() switch req.URL.String() { @@ -84,7 +101,7 @@ width="328" height="587" viewBox="-100 -131 328 587"> `, svgURL, pngURL) - out, err := InlineLocal([]byte(sampleSVG)) + ms := &xmain.State{ + Name: "test", + + Stdin: os.Stdin, + Stdout: os.Stdout, + Stderr: os.Stderr, + + Env: xos.NewEnv(os.Environ()), + } + ms.Log = cmdlog.Log(ms.Env, os.Stderr) + out, err := InlineLocal(ms, []byte(sampleSVG)) if err != nil { t.Fatal(err) }