diff --git a/cmd/handler.go b/cmd/handler.go index 0dd4896..9805a82 100644 --- a/cmd/handler.go +++ b/cmd/handler.go @@ -14,6 +14,7 @@ import ( "gitlab.com/omnibill/linux" "gitlab.com/omnibill/tui/confirmation" "gitlab.com/omnibill/tui/textinput" + "golang.org/x/mod/modfile" "golang.org/x/text/cases" "golang.org/x/text/language" "io/fs" @@ -26,6 +27,7 @@ import ( type templateData struct { PackagePath string + ModulePath string UpperName string Name string Path string @@ -77,6 +79,22 @@ var handlerCmd = &cobra.Command{ tmplData := templateData{} + cwd, err := os.Getwd() + if err != nil { + log.Fatalln(err) + } + + handlerDir := filepath.Join(cwd, "web/handlers") + viewDir := filepath.Join(cwd, "web/views") + + modFile, err := os.ReadFile(cwd + "/go.mod") + if err != nil { + log.Fatalln(err) + } + + modulePath := modfile.ModulePath(modFile) + tmplData.ModulePath = modulePath + inputHandlerPath, err := textinput.New(textinput.InputData{ Question: "Path of handler?", }) @@ -171,14 +189,6 @@ var handlerCmd = &cobra.Command{ } tmplData.Patch = *hasPatch - cwd, err := os.Getwd() - if err != nil { - log.Fatalln(err) - } - - handlerDir := filepath.Join(cwd, "web/handlers") - viewDir := filepath.Join(cwd, "web/views") - if *hasView { for i, _ := range pathSplit { isLast := i == len(pathSplit)-1 @@ -295,13 +305,13 @@ var handlerCmd = &cobra.Command{ output, _ := strings.CutPrefix(folder, cwd) for _, handlerImport := range imports { - if handlerImport == "omnibill.net/omnibill"+output { + if handlerImport == modulePath+output { isFound = true } } if !isFound { - imports = append(imports, "omnibill.net/omnibill"+output) + imports = append(imports, modulePath+output) } } diff --git a/cmd/templates/handler.go.tmpl b/cmd/templates/handler.go.tmpl index dfa89ce..fe3747f 100644 --- a/cmd/templates/handler.go.tmpl +++ b/cmd/templates/handler.go.tmpl @@ -13,9 +13,9 @@ import ( "github.com/gofiber/fiber/v2/middleware/session" "github.com/uptrace/bun" "go.uber.org/zap" - "omnibill.net/omnibill/web/utils" + "{{.ModulePath}}/web/utils" {{- if .GetView }} - PAGE_VIEW "omnibill.net/omnibill/web/views/{{.Path}}" + PAGE_VIEW "{{.ModulePath}}/web/views/{{.Path}}" {{ end }} ) diff --git a/cmd/templates/view.go.tmpl b/cmd/templates/view.go.tmpl index 2e7314b..3d9e0b0 100644 --- a/cmd/templates/view.go.tmpl +++ b/cmd/templates/view.go.tmpl @@ -1,6 +1,6 @@ package {{.PackagePath}} -import "omnibill.net/omnibill/web/views/layouts" +import "{{.ModulePath}}/web/views/layouts" templ Show() { @layouts.Base(nil) { diff --git a/go.mod b/go.mod index 2397b92..c2e841f 100644 --- a/go.mod +++ b/go.mod @@ -3,24 +3,32 @@ module omnibill.net/omnibill go 1.23.2 require ( + github.com/evanw/esbuild v0.24.0 github.com/go-webauthn/webauthn v0.11.2 + github.com/goccy/go-json v0.10.3 github.com/gofiber/fiber/v2 v2.52.5 + github.com/jackc/pgx/v5 v5.7.1 github.com/kr/pretty v0.3.1 + github.com/nicksnyder/go-i18n/v2 v2.4.1 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 github.com/uptrace/bun v1.2.5 + github.com/uptrace/bun/dialect/pgdialect v1.2.5 + gitlab.com/omnibill/linux v1.0.0 + gitlab.com/omnibill/tui v1.0.1 go.uber.org/zap v1.27.0 + golang.org/x/crypto v0.28.0 + golang.org/x/mod v0.20.0 + golang.org/x/text v0.19.0 ) require ( github.com/a-h/templ v0.2.793 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/evanw/esbuild v0.24.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-git/go-billy/v5 v5.6.0 // indirect github.com/go-webauthn/x v0.1.14 // indirect - github.com/goccy/go-json v0.10.3 // indirect github.com/gofiber/storage/postgres/v3 v3.0.0 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/google/go-tpm v0.9.1 // indirect @@ -29,7 +37,6 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect - github.com/jackc/pgx/v5 v5.7.1 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/klauspost/compress v1.17.11 // indirect @@ -39,7 +46,6 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/nicksnyder/go-i18n/v2 v2.4.1 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/puzpuzpuz/xsync/v3 v3.4.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect @@ -53,7 +59,6 @@ require ( github.com/subosito/gotenv v1.6.0 // indirect github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect github.com/ulikunitz/xz v0.5.12 // indirect - github.com/uptrace/bun/dialect/pgdialect v1.2.5 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.57.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect @@ -61,16 +66,12 @@ require ( github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/x448/float16 v0.8.4 // indirect gitlab.com/omnibill/archiver v1.0.0 // indirect - gitlab.com/omnibill/linux v1.0.0 // indirect - gitlab.com/omnibill/tui v1.0.1 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.28.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/term v0.25.0 // indirect - golang.org/x/text v0.19.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 9f05962..a1a41ec 100644 --- a/go.sum +++ b/go.sum @@ -147,6 +147,8 @@ golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjs golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=