3 Commits
4.3.0 ... 4.4.0

Author SHA1 Message Date
pk
30f8be3d5d Add post build command and exclude the esbuild outdir in the watcher. 2024-07-04 10:56:41 +02:00
pk
c356f34e21 Bump version 2024-01-04 21:56:44 +01:00
pk
734a6ce62e Fix linker to work correctly with sub paths. 2024-01-04 21:55:24 +01:00
5 changed files with 36 additions and 8 deletions

View File

@ -1,7 +1,9 @@
package main
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"github.com/evanw/esbuild/pkg/api"
@ -34,6 +36,19 @@ func buildAction(ctx *cli.Context) error {
api.Build(o.ESBuild.BuildOptions)
replace(o)
if ctx.Bool("p") && o.ProductionBuildOptions.CmdPostBuild != "" {
fmt.Printf("Executing post production build command `%s`\n", o.ProductionBuildOptions.CmdPostBuild)
cmd := exec.Command("sh", "-c", o.ProductionBuildOptions.CmdPostBuild)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Printf("Failed to execute post production build command `%s`: %+v\n", o.ProductionBuildOptions.CmdPostBuild, err)
os.Exit(1)
}
}
}
return nil

View File

@ -60,7 +60,8 @@ func link(from, to string) chan struct{} {
for k, v := range packages {
if strings.HasPrefix(event.Path, v) {
src := filepath.Dir(event.Path)
dest := filepath.Join(to, "node_modules", k)
subPath, _ := filepath.Rel(v, src)
dest := filepath.Join(to, "node_modules", k, subPath)
fmt.Printf("Copying %s to %s\n", src, dest)
err := copy.Copy(src, dest, copy.Options{
Skip: func(stat fs.FileInfo, src, dest string) (bool, error) {

View File

@ -28,7 +28,7 @@ type ESBuildExtended struct {
type options struct {
ESBuild ESBuildExtended
Watch struct {
Path string
Paths []string
Exclude []string
}
Serve struct {
@ -52,6 +52,9 @@ type options struct {
From string
To string
}
ProductionBuildOptions struct {
CmdPostBuild string
}
}
func readCfg(cfgPath string) []options {
@ -89,7 +92,7 @@ func main() {
app := &cli.App{
Name: "gowebbuild",
Usage: "All in one tool to build web frontend projects.",
Version: "4.3.0",
Version: "4.4.0",
Authors: []*cli.Author{{
Name: "trading-peter (https://github.com/trading-peter)",
}},

View File

@ -1,6 +1,6 @@
{
"Watch": {
"Path": "./frontend/src",
"Paths": [ "./frontend/src" ],
"Exclude": [ "./dist" ]
},
"Copy": [
@ -45,5 +45,8 @@
"Bundle": true,
"Write": true,
"LogLevel": 3
},
"ProductionBuildOptions": {
"CmdPostBuild": "my-build-script.sh"
}
}

View File

@ -38,10 +38,16 @@ func watchAction(ctx *cli.Context) error {
w.Ignore(opts.Watch.Exclude...)
}
if err := w.AddRecursive(opts.Watch.Path); err != nil {
if opts.ESBuild.Outdir != "" {
w.Ignore(opts.ESBuild.Outdir)
}
for _, p := range opts.Watch.Paths {
if err := w.AddRecursive(p); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
}
go func() {
for {
@ -60,7 +66,7 @@ func watchAction(ctx *cli.Context) error {
}
}()
fmt.Printf("Watching %d elements in %s\n", len(w.WatchedFiles()), opts.Watch.Path)
fmt.Printf("Watching %d elements in %s\n", len(w.WatchedFiles()), opts.Watch.Paths)
purge(opts)
cp(opts)