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