> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/cli/execute.cpp, line 321
> > <https://reviews.apache.org/r/34195/diff/3/?file=972213#file972213line321>
> >
> > I'm not convinced the 'errorMessage' is more help here. You're
> > basically saving doing a 'return EXIT_FAILURE;' in each of these if's,
> > which is not a big deal and arguably more explicit and clear. On the other
> > hand, this code was originally meant to be structured so the line that did
> > a 'flags.master.get()' was as close to the line that checked
> > 'flags.master.isSome()' and by moving that code farther away it makes it so
> > a reader has to look harder to confirm that when someone is "dereferencing"
> > 'flags.master' it's indeed safe.
As it happens, I too was only half-convinced that mine was a real improvement.
However, in the latest change, the `errorMessage` is actually a concatenation
of various errors: the benefit is that I don't have to (in theory) launch the
darn thing three or four times, each time discovering I missed yet another flag
:)
```
$ execute
Missing --master
{darn!}
$ execute --master=localhost
Missing --name
{oh, ffs...}
$ execute --master=localhost --name=my-master
Missing --command
{goddammit!}
$ execute --master=localhost --name=my-master --command=foobar
Could not parse master=localhost
{@#@#!!"£}
```
With this patch, one gets:
```
$ execute
Missing --master=IP:PORT
Missing --name=NAME
Missing --command=COMMAND
...
```
I don't know, I believe in karma... ;)
However, happy to change it back to the original version (with improvements) if
you think this is not really worth the extra effort.
> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/cli/execute.cpp, line 336
> > <https://reviews.apache.org/r/34195/diff/3/?file=972213#file972213line336>
> >
> > This pattern is why we use Option!
I totally get it, trust me!
However, (see comment above) concatenating Option<string>s is a major pain,
while here, there is actually the same level of indirection/etc.
> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/cli/resolve.cpp, line 81
> > <https://reviews.apache.org/r/34195/diff/3/?file=972214#file972214line81>
> >
> > I liked your pattern of doing 'setUsageMessage' immediately after
> > instantiating the class. Any reason not to do that here?
indeed, why not?
> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/cli/resolve.cpp, line 128
> > <https://reviews.apache.org/r/34195/diff/3/?file=972214#file972214line128>
> >
> > Let's also use this review as an opportunity to do 'EXIT_FAILURE'
> > anyplace we 'return -1' and 'EXIT_SUCCESS' anyplace we 'return 0'. Please
> > do a sweep in every file you've touched and make it so, thanks Marco!
oh, yes! thanks!!!
I really was worried people would yell at me, but I really was itching to do
that :)
With pleasure!
> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/examples/persistent_volume_framework.cpp, line 423
> > <https://reviews.apache.org/r/34195/diff/3/?file=972216#file972216line423>
> >
> > How come this 'usage' isn't getting killed?
I'm not very good with tedious tasks :)
thanks for catching me!
> On May 28, 2015, 11:45 a.m., Benjamin Hindman wrote:
> > src/log/tool/read.cpp, line 73
> > <https://reviews.apache.org/r/34195/diff/3/?file=972222#file972222line73>
> >
> > Please end sentence with period (here and everywhere please).
or, even better, actually fix the TODO!
- Marco
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34195/#review85536
-----------------------------------------------------------
On May 28, 2015, 10:06 a.m., Marco Massenzio wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/34195/
> -----------------------------------------------------------
>
> (Updated May 28, 2015, 10:06 a.m.)
>
>
> Review request for mesos, Benjamin Hindman and Joris Van Remoortere.
>
>
> Bugs: MESOS-2711
> https://issues.apache.org/jira/browse/MESOS-2711
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Jira: MESOS-2711
>
> All the main() methods have been refactored to use the
> definition of FlagsBase::help flag and FlagsBase::usage().
>
> This CL also tries to bring some uniformity to the
> use of exit codes: if this is deemed to be worth
> making it uniform, we can come up with common
> rules and extend the changes here to be compliant.
>
> This touches a lot of files, but keep scrolling, and you will see a pattern
> emerge.
>
>
> Diffs
> -----
>
> src/cli/execute.cpp dbd19e67f56a150f54180ad13e6402842eb68e17
> src/cli/resolve.cpp a99b6094dffc9f7aa44bcf63ad40121e1abb120b
> src/examples/load_generator_framework.cpp
> be1a3bf5f16bd811cb4039c8f15478183712a426
> src/examples/persistent_volume_framework.cpp
> 8a893fcfa3d5d988a88fdeaf0bfc08e0a49b7a65
> src/health-check/main.cpp a4ce742ab8deff1ebd99359112670493fdaeeac3
> src/launcher/executor.cpp de6f1b104a765a8e53934154e78872b03695b24c
> src/local/main.cpp a641b9e83862743890597a2981a9419517e7c589
> src/log/tool/benchmark.cpp 01e55115f35d155efbea190b5308b294ba76e7cb
> src/log/tool/initialize.cpp ccda7fb1c0f7113f865ec61adee76b2ea6180442
> src/log/tool/read.cpp d14138502f5bc9a725deb83da505765865da017f
> src/log/tool/replica.cpp 3985fc7df4f7153ae623589fbdd769ccbae57125
> src/master/main.cpp d5666bc8ee8d7a0f0b8685f76d65dd1f9ac2a280
> src/slave/containerizer/isolators/network/port_mapping.hpp
> c72fb47f60f40cda8d84a10497b9133f83cf018e
> src/slave/containerizer/isolators/network/port_mapping.cpp
> 49e983edab598e2ac487bb488fdd12840a9e7dfc
> src/slave/main.cpp f762f5b06be74c391cbc336b2da28f8358952ba4
> src/tests/main.cpp e3fff5d60c0468c0d258f2bb301efc1309c071b0
> src/usage/main.cpp 97f55e938dc7678f8331970d8953d09218f70902
>
> Diff: https://reviews.apache.org/r/34195/diff/
>
>
> Testing
> -------
>
> make check
>
> **NOTE** this fixes completely the chained changes from 34193 and makes all
> the tests pass.
>
>
> Thanks,
>
> Marco Massenzio
>
>