From 93338b0712f9e27cf4e47a5c3d7ab729af146d90 Mon Sep 17 00:00:00 2001 From: pk Date: Tue, 3 Sep 2024 14:38:02 +0200 Subject: [PATCH] Add templates for air. --- main.go | 2 +- templates.go | 13 ++++++++++++ templates/.air.toml | 47 +++++++++++++++++++++++++++++++++++++++++ templates/.air.win.toml | 45 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 templates/.air.toml create mode 100755 templates/.air.win.toml diff --git a/main.go b/main.go index b02e716..9e6e85e 100644 --- a/main.go +++ b/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.1", + Version: "6.1.0", Authors: []*cli.Author{{ Name: "trading-peter (https://github.com/trading-peter)", }}, diff --git a/templates.go b/templates.go index 4cab734..9137b7e 100644 --- a/templates.go +++ b/templates.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "path/filepath" + "runtime" "text/template" "github.com/Iilun/survey/v2" @@ -21,6 +22,12 @@ 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", @@ -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") } diff --git a/templates/.air.toml b/templates/.air.toml new file mode 100644 index 0000000..d128e28 --- /dev/null +++ b/templates/.air.toml @@ -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 \ No newline at end of file diff --git a/templates/.air.win.toml b/templates/.air.win.toml new file mode 100755 index 0000000..c40c820 --- /dev/null +++ b/templates/.air.win.toml @@ -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 \ No newline at end of file