diff options
| author | Shulhan <m.shulhan@gmail.com> | 2022-09-13 21:00:21 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2022-09-13 21:00:21 +0700 |
| commit | f9bfc4b0f1cb1fcea35baa0a7b512c103168876f (patch) | |
| tree | d63fa15773c4ab3643e24609143cda96f9ade1d9 | |
| parent | e96ae32fe5061bac41b7a8c8ec4a460760261141 (diff) | |
| download | golang-id-web-f9bfc4b0f1cb1fcea35baa0a7b512c103168876f.tar.xz | |
all: gabungkan script go:generate menjadi sub-perintah "embed"
Daripada memanggil "go generate", yang terpisah dengan program
cmd/www-golangid, gabungkan mereka sehingga untuk menghasilkan
berkas static.go tinggal memanggil perintah
$ go run ./cmd/www-golangid embed
| -rw-r--r-- | Makefile | 12 | ||||
| -rw-r--r-- | cmd/www-golangid/main.go | 47 | ||||
| -rw-r--r-- | generate.go | 27 |
3 files changed, 44 insertions, 42 deletions
@@ -1,4 +1,4 @@ -.PHONY: clean all generate build build-deploy deploy +.PHONY: clean all embed build build-deploy deploy MACOS_SERVICE=local.golangid PROGRAM_NAME=www-golangid @@ -10,13 +10,13 @@ clean: rm -f ./$(PROGRAM_NAME) find ./content -name "*.html" -delete -generate: - go generate +embed: + go run ./cmd/www-golangid embed -build: generate +build: embed go build ./cmd/$(PROGRAM_NAME) -install: generate +install: embed go install ./cmd/$(PROGRAM_NAME) serve: @@ -25,7 +25,7 @@ serve: deploy: build-deploy rsync --progress ./$(PROGRAM_NAME) www-golangid:/data/app/bin/ -build-deploy: generate +build-deploy: embed unset CGO_ENABLED; \ GOOS=linux GOARCH=amd64 go build ./cmd/$(PROGRAM_NAME) diff --git a/cmd/www-golangid/main.go b/cmd/www-golangid/main.go index c0aae1a..b3b7cba 100644 --- a/cmd/www-golangid/main.go +++ b/cmd/www-golangid/main.go @@ -14,21 +14,50 @@ import ( var memFS *memfs.MemFS +const ( + cmdEmbed = `embed` + + dirRoot = `_content` + htmlTemplate = `_content/html.tmpl` + listenAddr = `127.0.0.1:` +) + func main() { - var port string + var ( + convertOpts = ciigo.ConvertOptions{ + Root: dirRoot, + HtmlTemplate: htmlTemplate, + } + embedOpts = &ciigo.EmbedOptions{ + ConvertOptions: convertOpts, + EmbedOptions: memfs.EmbedOptions{ + PackageName: `main`, + VarName: `memFS`, + GoFileName: `cmd/www-golangid/static.go`, + }, + } + serveOpts = &ciigo.ServeOptions{ + ConvertOptions: convertOpts, + Mfs: memFS, + } + + cmd string + port string + err error + ) flag.StringVar(&port, "port", "5000", "HTTP port server") flag.Parse() - serveOpts := &ciigo.ServeOptions{ - ConvertOptions: ciigo.ConvertOptions{ - Root: "_content", - HtmlTemplate: "_content/html.tmpl", - }, - Address: "127.0.0.1:" + port, - Mfs: memFS, + cmd = flag.Arg(0) + + switch cmd { + case cmdEmbed: + err = ciigo.GoEmbed(embedOpts) + default: + serveOpts.Address = listenAddr + port + err = ciigo.Serve(serveOpts) } - err := ciigo.Serve(serveOpts) if err != nil { log.Fatal(err) } diff --git a/generate.go b/generate.go deleted file mode 100644 index df216bf..0000000 --- a/generate.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2019, The golang-id.org Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run generate.go - -package main - -import ( - "git.sr.ht/~shulhan/ciigo" - "github.com/shuLhan/share/lib/memfs" -) - -func main() { - opts := &ciigo.EmbedOptions{ - ConvertOptions: ciigo.ConvertOptions{ - Root: "_content", - HtmlTemplate: "_content/html.tmpl", - }, - EmbedOptions: memfs.EmbedOptions{ - PackageName: "main", - VarName: "memFS", - GoFileName: "cmd/www-golangid/static.go", - }, - } - ciigo.GoEmbed(opts) -} |
