Say I have go:generate directives in two files: one in the foo/ directory and one in the mock/ directory. The generated mock code will need data structures from the generated code in the foo module. Will go generate ./... reliably generate code in the correct order? What do I need to do to make that happen?

You are viewing a single thread.
View all comments
2 points
*

I’m a go n00b, but since the source code is available, I figured I’d look. TL;DR: it probably uses the shell’s default globbing resolution to produce the file list.

The generate command iterates over the internal files, but I can’t find exactly how GoFiles is populated.

You can probably learn what it’s doing by running go generate -n or go generate -x, and I think you can also explicitly call go generate with a file pattern list, which would give you this control.

Otherwise, I think you can include more than one magic comment in a single file, so if you have some dependant generators, these could be placed in the same file, sequentially, and you’d get the expected result.

Another alternative would be to try renaming the relevant files so that they sort the way you want them to run, lexicographically.

permalink
report
reply
2 points

Good answers. I like these. I like the more than one command in a file, that will work. And yes, should have read the source!

permalink
report
parent
reply

Golang

!golang@programming.dev

Create post

This is a community dedicated to the go programming language.

Useful Links:

Rules:

  • Posts must be relevant to Go
  • No NSFW content
  • No hate speech, bigotry, etc
  • Try to keep discussions on topic
  • No spam of tools/companies/advertisements
  • It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.

Community stats

  • 20

    Monthly active users

  • 150

    Posts

  • 243

    Comments