Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
79afdd39b8 | |||
6b14faa5b1 | |||
93338b0712 | |||
7f25c3f83c |
2
main.go
2
main.go
@ -23,7 +23,7 @@ func main() {
|
||||
app := &cli.App{
|
||||
Name: "gowebbuild",
|
||||
Usage: "All in one tool to build web frontend projects.",
|
||||
Version: "6.0.0",
|
||||
Version: "6.1.2",
|
||||
Authors: []*cli.Author{{
|
||||
Name: "trading-peter (https://github.com/trading-peter)",
|
||||
}},
|
||||
|
15
templates.go
15
templates.go
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"text/template"
|
||||
|
||||
"github.com/Iilun/survey/v2"
|
||||
@ -21,12 +22,18 @@ var dockerImage string
|
||||
//go:embed templates/Dockerfile
|
||||
var dockerFile string
|
||||
|
||||
//go:embed templates/.air.toml
|
||||
var airToml string
|
||||
|
||||
//go:embed templates/.air.win.toml
|
||||
var airWinToml string
|
||||
|
||||
var qs = []*survey.Question{
|
||||
{
|
||||
Name: "tpl",
|
||||
Prompt: &survey.Select{
|
||||
Message: "Choose a template:",
|
||||
Options: []string{".gowebbuild.yaml", "docker_image.sh", "Dockerfile"},
|
||||
Options: []string{".air.toml", ".gowebbuild.yaml", "docker_image.sh", "Dockerfile"},
|
||||
Default: "docker_image.sh",
|
||||
},
|
||||
},
|
||||
@ -63,6 +70,12 @@ func tplAction(ctx *cli.Context) error {
|
||||
case "Dockerfile":
|
||||
tpl = dockerFile
|
||||
fileName = "Dockerfile"
|
||||
case ".air.toml":
|
||||
tpl = airToml
|
||||
if runtime.GOOS == "windows" {
|
||||
tpl = airWinToml
|
||||
}
|
||||
fileName = ".air.toml"
|
||||
default:
|
||||
golog.Fatal("Invalid template")
|
||||
}
|
||||
|
47
templates/.air.toml
Normal file
47
templates/.air.toml
Normal file
@ -0,0 +1,47 @@
|
||||
# Config file for [Air](https://github.com/cosmtrek/air) in TOML format
|
||||
|
||||
# Working directory
|
||||
# . or absolute path, please note that the directories following must be under root.
|
||||
root = "."
|
||||
tmp_dir = "tmp"
|
||||
|
||||
[build]
|
||||
# Just plain old shell command. You could use `make` as well.
|
||||
cmd = "go build -o ./tmp/main ./main.go"
|
||||
# Binary file yields from `cmd`.
|
||||
bin = "tmp/main"
|
||||
# Customize binary.
|
||||
full_bin = "./tmp/main run sample.json"
|
||||
# Watch these filename extensions.
|
||||
include_ext = ["go", "tpl", "tmpl", "html"]
|
||||
# Ignore these filename extensions or directories.
|
||||
exclude_dir = ["frontend-dist", "_mongo", "_db", "dist", "frontend", "web"]
|
||||
# Watch these directories if you specified.
|
||||
include_dir = []
|
||||
# Exclude files.
|
||||
exclude_file = []
|
||||
# This log file places in your tmp_dir.
|
||||
log = "air.log"
|
||||
# It's not necessary to trigger build each time file changes if it's too frequent.
|
||||
delay = 1000 # ms
|
||||
# Stop running old binary when build errors occur.
|
||||
stop_on_error = true
|
||||
# Send Interrupt signal before killing process (windows does not support this feature)
|
||||
send_interrupt = false
|
||||
# Delay after sending Interrupt signal
|
||||
kill_delay = 500 # ms
|
||||
|
||||
[log]
|
||||
# Show log time
|
||||
time = false
|
||||
|
||||
[color]
|
||||
# Customize each part's color. If no color found, use the raw app log.
|
||||
main = "magenta"
|
||||
watcher = "cyan"
|
||||
build = "yellow"
|
||||
runner = "green"
|
||||
|
||||
[misc]
|
||||
# Delete tmp directory on exit
|
||||
clean_on_exit = true
|
45
templates/.air.win.toml
Executable file
45
templates/.air.win.toml
Executable file
@ -0,0 +1,45 @@
|
||||
# Config file for [Air](https://github.com/cosmtrek/air) in TOML format
|
||||
|
||||
# Working directory
|
||||
# . or absolute path, please note that the directories following must be under root.
|
||||
root = "."
|
||||
tmp_dir = "tmp"
|
||||
|
||||
[build]
|
||||
# Just plain old shell command. You could use `make` as well.
|
||||
cmd = "go build -o ./tmp/main.exe ./main.go"
|
||||
# Binary file yields from `cmd`.
|
||||
bin = "tmp/main.exe"
|
||||
# Watch these filename extensions.
|
||||
include_ext = ["go", "tpl", "tmpl", "html"]
|
||||
# Ignore these filename extensions or directories.
|
||||
exclude_dir = ["frontend-dist", "_mongo", "_db", "dist", "frontend", "web"]
|
||||
# Watch these directories if you specified.
|
||||
include_dir = ["backend"]
|
||||
# Exclude files.
|
||||
exclude_file = []
|
||||
# This log file places in your tmp_dir.
|
||||
log = "air.log"
|
||||
# It's not necessary to trigger build each time file changes if it's too frequent.
|
||||
delay = 1000 # ms
|
||||
# Stop running old binary when build errors occur.
|
||||
stop_on_error = true
|
||||
# Send Interrupt signal before killing process (windows does not support this feature)
|
||||
send_interrupt = false
|
||||
# Delay after sending Interrupt signal
|
||||
kill_delay = 500 # ms
|
||||
|
||||
[log]
|
||||
# Show log time
|
||||
time = false
|
||||
|
||||
[color]
|
||||
# Customize each part's color. If no color found, use the raw app log.
|
||||
main = "magenta"
|
||||
watcher = "cyan"
|
||||
build = "yellow"
|
||||
runner = "green"
|
||||
|
||||
[misc]
|
||||
# Delete tmp directory on exit
|
||||
clean_on_exit = true
|
@ -13,6 +13,7 @@ CGO_ENABLED=0 go build -ldflags="-s -w" -o ../{{.ProjectFolderName}} .
|
||||
|
||||
# A second run is needed to build the final image.
|
||||
cd ..
|
||||
docker build -f sources/Dockerfile --no-cache -t {{.GoModuleName}}:${ver} .
|
||||
docker build -f sources/Dockerfile --no-cache -t {{.GoModuleName}}:${ver} -t {{.GoModuleName}}:latest .
|
||||
docker push {{.GoModuleName}}:${ver}
|
||||
docker push {{.GoModuleName}}:latest
|
||||
rm -rf sources {{.ProjectFolderName}}
|
Reference in New Issue
Block a user