go list "go:generate" files

334 views
Skip to first unread message

gta

unread,
Nov 9, 2020, 11:00:10 AM11/9/20
to golang-nuts
Hello,
is there a way to list all the files that have a `//go:generate` directive with the standard tools?
I see that `go list` can show the ignored files so I am assuming it is detecting `// +build ignore` directives, but I found nothing to lit the go generate target files.
  
Thanks in advance,

Giacomo

Tyler Compton

unread,
Nov 9, 2020, 11:59:06 AM11/9/20
to gta, golang-nuts
I know that you're asking about how to do this with the standard tools, but you can do this with grep if you're on a platform that has the command available:

grep --recursive --files-with-matches "//go:generate"

or, for short:

grep -rl "//go:generate"

This command will output a list of files with "//go:generate" in them, separated by newlines. Might be a good alternative if there's no way to do this with the go command.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/c45f0126-dd61-444d-a351-729132bf25fdn%40googlegroups.com.

gta

unread,
Nov 10, 2020, 4:05:50 AM11/10/20
to golang-nuts
Thanks for the reply,
yes I know I can grep for those files, but I was hoping that go list could give me the files in the reverse dependency order like go list -deps.
I was hoping to shave some time from our generation step.
I guess bash is my friend in this.


Giacomo

Dan Kortschak

unread,
Nov 10, 2020, 4:34:09 AM11/10/20
to golang-nuts
//go:generate is not limited to dependency on Go source files, so this
is not possible in the general case.

Tartari Giacomo

unread,
Nov 10, 2020, 6:44:41 AM11/10/20
to Dan Kortschak, golang-nuts
You are right of course.
But given that `go list` is aware of other directives such as build constraints I was wondering.

Anyways for go code generation, it would be very helpful to be able to have a list of flies on which invoke go generate in the right order from `go list`.

Giacomo






--
You received this message because you are subscribed to a topic in the Google Groups "golang-nuts" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/golang-nuts/uTZCKvOS3Gc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/2107e93634c3abf31f52e14f91e0fa35f8a0cbee.camel%40kortschak.io.
Reply all
Reply to author
Forward
0 new messages