gobuffalo / buffalo-auth

Buffalo auth plugin helps adding username password authentication to your app
https://gobuffalo.io
MIT License
41 stars 28 forks source link

bug: Error running buffalo g auth #90

Closed evandrojr closed 1 year ago

evandrojr commented 1 year ago

Description

-- Please provide as much relevant info as possible. -->

Description

Expected Behavior

Create the scaffold

Actual Behavior

Error running buffalo g auth

got this error message:

% buffalo g auth                                            22-11-25 - 21:54:26
Error: could not find desired block in actions/app.go
Usage:
  buffalo generate auth [flags]

Flags:
  -h, --help   help for auth

ERRO[0000] Error: exit status 1  

To Reproduce

 buffalo new seu-garcom-go --db-type=sqlite3
 cd seu_garcom_go
 buffalo plugins install github.com/gobuffalo/buffalo-auth
 buffalo g auth

Additional Context

Details

``` -> Go: Checking installation ✓ The `go` executable was found on your system at: /home/j/bin/go/bin/go -> Go: Checking minimum version requirements ✓ Your version of Go, 1.19, meets the minimum requirements. -> Go: Checking Package Management ✓ You are using Go Modules (`go`) for package management. -> Go: Checking PATH ✓ Your PATH contains /home/j/go/bin. -> Node: Checking installation ✓ The `node` executable was found on your system at: /home/j/.nvm/versions/node/v14.20.0/bin/node -> Node: Checking minimum version requirements ✓ Your version of Node, v14.20.0, meets the minimum requirements. -> NPM: Checking installation ✓ The `npm` executable was found on your system at: /home/j/.nvm/versions/node/v14.20.0/bin/npm -> NPM: Checking minimum version requirements ✓ Your version of NPM, 6.14.17, meets the minimum requirements. -> Yarn: Checking installation ✓ The `yarnpkg` executable was found on your system at: /home/j/.nvm/versions/node/v14.20.0/bin/yarnpkg -> Yarn: Checking minimum version requirements ✓ Your version of Yarn, 3.3.0, meets the minimum requirements. -> PostgreSQL: Checking installation ✘ The `postgres` executable could not be found on your system. For help setting up your Postgres environment please follow the instructions for you platform at: https://www.postgresql.org/download/ -> MySQL: Checking installation ✘ The `mysql` executable could not be found on your system. For help setting up your MySQL environment please follow the instructions for you platform at: https://www.mysql.com/downloads/ -> SQLite3: Checking installation ✓ The `sqlite3` executable was found on your system at: /home/j/Android/Sdk/platform-tools/sqlite3 -> SQLite3: Checking minimum version requirements ✓ Your version of SQLite3, 3.32.2, meets the minimum requirements. -> Cockroach: Checking installation ✘ The `cockroach` executable could not be found on your system. For help setting up your Cockroach environment please follow the instructions for you platform at: https://www.cockroachlabs.com/docs/stable/ -> Buffalo (CLI): Checking installation ✓ The `buffalo` executable was found on your system at: /home/j/go/bin/buffalo -> Buffalo (CLI): Checking minimum version requirements ✓ Your version of Buffalo (CLI), v0.18.9, meets the minimum requirements. -> Buffalo: Application Details Pwd /home/j/lab/seu_garcom_go Root /home/j/lab/seu_garcom_go GoPath /home/j/go PackagePkg seu_garcom_go ActionsPkg seu_garcom_go/actions ModelsPkg seu_garcom_go/models GriftsPkg seu_garcom_go/grifts WithModules true Name seu-garcom-go Bin bin/seu-garcom-go VCS git WithPop true WithSQLite true WithDep false WithWebpack true WithNodeJs true WithYarn true WithDocker true WithGrifts true AsWeb true AsAPI false InApp true PackageJSON {map[build:webpack --mode production --progress dev:webpack --watch]} -> Buffalo: config/buffalo-app.toml name = "seu-garcom-go" bin = "bin/seu-garcom-go" vcs = "git" with_pop = true with_sqlite = true with_dep = false with_webpack = true with_nodejs = true with_yarn = true with_docker = true with_grifts = true as_web = true as_api = false -> Buffalo: config/buffalo-plugins.toml [[plugin]] binary = "buffalo-auth" go_get = "github.com/gobuffalo/buffalo-auth@latest" tags = ["sqlite"] [[plugin]] binary = "buffalo-pop" go_get = "github.com/gobuffalo/buffalo-pop/v3@latest" tags = ["sqlite"] -> Buffalo: go.mod module seu_garcom_go go 1.19 require ( github.com/gobuffalo/buffalo v1.0.1 github.com/gobuffalo/buffalo-pop/v3 v3.0.6 github.com/gobuffalo/envy v1.10.2 github.com/gobuffalo/grift v1.5.2 github.com/gobuffalo/mw-csrf v1.0.1 github.com/gobuffalo/mw-forcessl v1.0.1 github.com/gobuffalo/mw-i18n/v2 v2.0.2 github.com/gobuffalo/mw-paramlogger v1.0.1 github.com/gobuffalo/pop/v6 v6.1.0 github.com/gobuffalo/suite/v4 v4.0.3 github.com/unrolled/secure v1.13.0 ) require ( github.com/BurntSushi/toml v1.2.0 // indirect github.com/Masterminds/semver/v3 v3.1.1 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/fatih/color v1.13.0 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/felixge/httpsnoop v1.0.1 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/go-sql-driver/mysql v1.6.0 // indirect github.com/gobuffalo/events v1.4.3 // indirect github.com/gobuffalo/fizz v1.14.4 // indirect github.com/gobuffalo/flect v0.3.0 // indirect github.com/gobuffalo/github_flavored_markdown v1.1.3 // indirect github.com/gobuffalo/helpers v0.6.7 // indirect github.com/gobuffalo/httptest v1.5.2 // indirect github.com/gobuffalo/logger v1.0.7 // indirect github.com/gobuffalo/meta v0.3.3 // indirect github.com/gobuffalo/nulls v0.4.2 // indirect github.com/gobuffalo/plush/v4 v4.1.16 // indirect github.com/gobuffalo/refresh v1.13.2 // indirect github.com/gobuffalo/tags/v3 v3.1.4 // indirect github.com/gobuffalo/validate/v3 v3.3.3 // indirect github.com/gofrs/uuid v4.3.1+incompatible // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jackc/chunkreader/v2 v2.0.1 // indirect github.com/jackc/pgconn v1.13.0 // indirect github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgproto3/v2 v2.3.1 // indirect github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect github.com/jackc/pgtype v1.12.0 // indirect github.com/jackc/pgx/v4 v4.17.2 // indirect github.com/jmoiron/sqlx v1.3.5 // indirect github.com/joho/godotenv v1.4.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/luna-duclos/instrumentedsql v1.1.3 // indirect github.com/mattn/go-colorable v0.1.9 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/mattn/go-sqlite3 v1.14.16 // indirect github.com/microcosm-cc/bluemonday v1.0.20 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/monoculum/formam v3.5.5+incompatible // indirect github.com/nicksnyder/go-i18n v1.10.1 // indirect github.com/pelletier/go-toml v1.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/sergi/go-diff v1.2.0 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d // indirect github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e // indirect github.com/spf13/cobra v1.6.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.8.1 // indirect golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect golang.org/x/net v0.0.0-20221002022538-bcab6841153b // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect golang.org/x/text v0.3.7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) ```
hoop33 commented 1 year ago

Same issue here. After looking at the code, I see it's searching actions/app.go for:

if app == nil {

https://github.com/gobuffalo/buffalo-auth/blob/main/genny/auth/auth.go#L85

Apparently, the default Buffalo template for actions/app.go changed that line to:

appOnce.Do(func() {

I made buffalo g auth run successfully by changing my app's implementation to the old code (if app == nil {), running buffalo g auth, and changing it back (appOnce.Do(func() {).

I see the gogen.AddInsideBlock method ultimately uses strings.Contains to find the search string, so a regex to search either implementation wouldn't work. Not sure what the best fix is to coordinate with Buffalo versions.

sio4 commented 1 year ago

Yeah, there was a change on the core that affected this issue, but I was not able to address this issue for a while. I am going to work on this issue as soon as possible but I cannot promise the due date for now. Sorry for that.

For the better context, the change on the core: https://github.com/gobuffalo/cli/pull/229

sio4 commented 1 year ago

Hi all, this is will be fixed in the next release, v1.5.0, please check if that works as expected.