4 Commits
6.0.0 ... 6.1.2

Author SHA1 Message Date
pk
79afdd39b8 Fix missing dot 2024-09-03 14:40:50 +02:00
pk
6b14faa5b1 Fix survey options. 2024-09-03 14:39:41 +02:00
pk
93338b0712 Add templates for air. 2024-09-03 14:38:02 +02:00
pk
7f25c3f83c Improve template for docker_image.sh 2024-08-26 23:53:31 +02:00
5 changed files with 109 additions and 3 deletions

View File

@ -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)",
}},

View File

@ -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
View 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
View 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

View File

@ -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}}