From b580c988855ed7ec78bd13e5e419118dfb23e641 Mon Sep 17 00:00:00 2001 From: Changkun Ou Date: Sat, 27 Feb 2021 14:34:57 +0100 Subject: [PATCH] all: reorganize files --- Makefile | 6 +++--- README.md | 6 +++--- code2img.go | 7 ++----- code2img_test.go | 11 ++++++++--- Dockerfile => docker/Dockerfile | 0 docker-compose.yml => docker/docker-compose.yml | 2 +- demo.gif => testdata/demo.gif | Bin got.png => testdata/got.png | Bin testdata.png => testdata/want.png | Bin 9 files changed, 17 insertions(+), 15 deletions(-) rename Dockerfile => docker/Dockerfile (100%) rename docker-compose.yml => docker/docker-compose.yml (93%) rename demo.gif => testdata/demo.gif (100%) rename got.png => testdata/got.png (100%) rename testdata.png => testdata/want.png (100%) diff --git a/Makefile b/Makefile index 544161a..62f1a53 100644 --- a/Makefile +++ b/Makefile @@ -4,11 +4,11 @@ all: GOOS=linux go build -mod=vendor ./cmd/code2img - docker build -t code2img . + docker build -t code2img -f docker/Dockerfile . up: - docker-compose -f docker-compose.yml up -d + docker-compose -f docker/docker-compose.yml up -d down: - docker-compose -f docker-compose.yml down + docker-compose -f docker/docker-compose.yml down clean: rm code2img docker rmi -f $(shell docker images -f "dangling=true" -q) 2> /dev/null; true diff --git a/README.md b/README.md index f7840d1..918ab41 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ import "golang.design/x/code2img" Just one API `code2img.Render`, to use it: ```go -b, err := code2img.Render(`import "golang.design/x/code2img"`) +b, err := code2img.Render(context.TODO(), `import "golang.design/x/code2img"`) if err != nil { panic(err) } @@ -32,7 +32,7 @@ Basic usage notes: Demo: -![](./demo.gif) +![](./testdata/demo.gif) ### Server API @@ -64,4 +64,4 @@ make up ## License -© 2020 The golang.design Initiative Authors. \ No newline at end of file +© 2020-2021 The golang.design Initiative Authors. \ No newline at end of file diff --git a/code2img.go b/code2img.go index 3616e68..cbe111d 100644 --- a/code2img.go +++ b/code2img.go @@ -11,7 +11,6 @@ import ( "fmt" "math" "net/url" - "time" "github.com/chromedp/cdproto/cdp" "github.com/chromedp/cdproto/dom" @@ -22,7 +21,7 @@ import ( // Render renders the given code string and returns a binary buffer // that contains a carbon-now based image. -func Render(code string) ([]byte, error) { +func Render(ctx context.Context, code string) ([]byte, error) { // https://carbon.now.sh/? // bg=rgba(74%2C144%2C226%2C1)& // t=material& @@ -73,9 +72,7 @@ func Render(code string) ([]byte, error) { codeparam := url.Values{} codeparam.Set("code", url.PathEscape(code)) - ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) - defer cancel() - ctx, cancel = chromedp.NewContext(ctx) + ctx, cancel := chromedp.NewContext(ctx) defer cancel() url := "https://carbon.now.sh/?" + values.Encode() + "&" + codeparam.Encode() diff --git a/code2img_test.go b/code2img_test.go index d31ced7..df71c17 100644 --- a/code2img_test.go +++ b/code2img_test.go @@ -8,16 +8,21 @@ package code2img_test import ( "bytes" + "context" "image/png" "math" "os" "testing" + "time" "golang.design/x/code2img" ) func TestRender(t *testing.T) { - got, err := code2img.Render(`import "golang.design/x/code2img`) + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() + + got, err := code2img.Render(ctx, `import "golang.design/x/code2img`) if err != nil { t.Fatalf("render failed: %v", err) } @@ -27,7 +32,7 @@ func TestRender(t *testing.T) { t.Fatalf("cannot read rendered image: %v", err) } - want, err := os.ReadFile("testdata.png") + want, err := os.ReadFile("testdata/want.png") if err != nil { t.Fatalf("cannot read gold test file: %v", err) } @@ -40,7 +45,7 @@ func TestRender(t *testing.T) { if math.Abs(float64(imgGot.Bounds().Dx()-imgWant.Bounds().Dx())) > 5 || math.Abs(float64(imgGot.Bounds().Dy()-imgWant.Bounds().Dy())) > 5 { - err := os.WriteFile("got.png", got, os.ModePerm) + err := os.WriteFile("testdata/got.png", got, os.ModePerm) if err != nil { t.Errorf("failed to write image: %v", err) } diff --git a/Dockerfile b/docker/Dockerfile similarity index 100% rename from Dockerfile rename to docker/Dockerfile diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 93% rename from docker-compose.yml rename to docker/docker-compose.yml index 2febf5b..09cdeda 100644 --- a/docker-compose.yml +++ b/docker/docker-compose.yml @@ -9,7 +9,7 @@ services: container_name: code2img restart: always volumes: - - ./data:/app/data + - ../data:/app/data image: code2img cap_add: - SYS_PTRACE # for debugging diff --git a/demo.gif b/testdata/demo.gif similarity index 100% rename from demo.gif rename to testdata/demo.gif diff --git a/got.png b/testdata/got.png similarity index 100% rename from got.png rename to testdata/got.png diff --git a/testdata.png b/testdata/want.png similarity index 100% rename from testdata.png rename to testdata/want.png