Conversation
| Executor *taskrunner.Executor | ||
| } | ||
|
|
||
| func init() { |
There was a problem hiding this comment.
Could we instead pass verbose in as an argument to clireporter?
There was a problem hiding this comment.
I had talked to @stephen to get to this solution, there's no straightforward way to pass it into clireporter, as the New function is indirectly called through the RunOption system, and passed in from main.go in backend/app/taskrunner
There was a problem hiding this comment.
we could alternatively have the clireporter.Option take an argument that sets verbosity, so we'd have to handle the flag in the actual binary's main function. that seems annoying, so i opted for this path. this might matter more for binaries that run multiple taskrunner instance with varying verbosities, but I didn't feel like it was worth it atm.
There was a problem hiding this comment.
I don't love the idea of having distributed binary flags / plugins that have binary interfaces. Having a verbosity flag as a global run option seems nice - and like something you'd use in other potential extensions.
@stephen what makes it annoying to do this in the main binary function?
There was a problem hiding this comment.
@berfarah main doesn't call clireporter directly, but rather passes in options that don't provide a way to use the interface directly
There was a problem hiding this comment.
AFAIK you have access to the executor via the options function, which has a config object tied to it. What if we put verbose on config?
There was a problem hiding this comment.
we could also do something like:
func Option(verbose bool) taskrunner.RunOption {
return func(r *taskrunner.RunOptions) {
r.ReporterFns = append(r.ReporterFns, func(ctx context.Context, executor *taskrunner.Executor) error {
New(executor).Run(ctx)
return nil
})
}
}haven't really thought through how to unify the config file vs. the code configuration
There was a problem hiding this comment.
^ totally makes sense. I think in this case, verbosity seems like something everyone should be able to access. Though I'm open to it not being the case ofc.
|
@jsm there's now an API to do this 😄 |
|
@berfarah cool! deets? Should I close this? |
|
@jsm You can add it to func (r *Runtime) {
var configObj somestruct
r.WithFlag(f flags) {
f.BoolVar(&configObj.Verbose, "verbose", false, "...")
}
} |
What was changed?
Adds
-vflag to taskrunner