summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <m.shulhan@gmail.com>2022-09-13 21:00:21 +0700
committerShulhan <m.shulhan@gmail.com>2022-09-13 21:00:21 +0700
commitf9bfc4b0f1cb1fcea35baa0a7b512c103168876f (patch)
treed63fa15773c4ab3643e24609143cda96f9ade1d9
parente96ae32fe5061bac41b7a8c8ec4a460760261141 (diff)
downloadgolang-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--Makefile12
-rw-r--r--cmd/www-golangid/main.go47
-rw-r--r--generate.go27
3 files changed, 44 insertions, 42 deletions
diff --git a/Makefile b/Makefile
index 4ab855f..b33e2c8 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
-}