Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add verbose flag #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Add verbose flag #1

wants to merge 1 commit into from

Conversation

jsm
Copy link
Member

@jsm jsm commented Aug 29, 2018

What was changed?

Adds -v flag to taskrunner

image

@jsm jsm requested a review from stephen August 29, 2018 20:27
type cli struct {
Executor *taskrunner.Executor
}

func init() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we instead pass verbose in as an argument to clireporter?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@berfarah main doesn't call clireporter directly, but rather passes in options that don't provide a way to use the interface directly

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ 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.

@berfarah
Copy link
Contributor

@jsm there's now an API to do this 😄

@jsm
Copy link
Member Author

jsm commented Nov 13, 2018

@berfarah cool! deets? Should I close this?

@berfarah
Copy link
Contributor

@jsm You can add it to clireporter via the option:

func (r *Runtime) {
  var configObj somestruct
  r.WithFlag(f flags) {
    f.BoolVar(&configObj.Verbose, "verbose", false, "...")
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants