On 5/3/07, Rover Rhubarb <rover.rhubarb / gmail.com> wrote: > > A "mandatory option" is a contradiction :) You need to test for the > > presence of an option in your own code. > > This is a fair point, but for complex command lines we sometimes really > need options that are not optional. For example, I'm working on a ruby > xmltv-like scraper, that has a bunch of regular options, plus essential > arguments like --config CONFIG_FILE and --scraper SCRAPER_FILE for > specifying files that are necessary. > > I want to use options for these rather than arguments because they are > both files and I prefer that the user specify the option --config or > --scraper rather than having to get the order of them right on the > command line. > > So you see, I need an "option" that is mandatory in addition to it > having a mandatory argument. > > Sure I could do it in my own code - but given this is a common case I'm > tempted to extend OptionParser to do it so that I can get at the option > description when I report that its missing you see? This is why it > should probably be a feature of OptionParser - to tie the error message > to the switch that's missing. I don't think I can be bothered wading > into that code myself, so I guess I'll do something a little hackier - > test my options and repeat the option descriptions. > > But how about it Gavin? > > Also - even if you don't - you should probably clearly document the > fact this isn't available. The frequent use of "MANDATORY" in the > example led me and probably many others to think it was bug that my > mandatory arguments weren't reported as missing. It took me a while to > realize that the word "argument" was key here. It also took me a while > to realize that the square brackets were important. I agree completely. The wording should be: mandatory option argument, not option. And yes, it makes sense to /also/ make some options mandatory. -- Felipe Contreras