Merge pull request #1868 from RosettaCommons/vmullig/xsd_info
Add an "info" option to rosetta_scripts
I often find, when I'm working in RosettaScripts, that I can't remember the details of the syntax of particular movers, filters, task operations, or residue selectors. Is it "filename" or "file_name" in ReadResfile? Do filters typically have a "cutoff" or a "threshold" option? This typically means that I either have to search the web documentation, or I have to find the right .cc file in the codebase and read the parse_my_tag() function. If I'm on a train or a plane, the former is often not an option, which only leaves the latter -- and that's an awfully slow way to check user input syntax.
Wouldn't it be nice if Rosetta had in-app help? Well, thanks to the hard work of the XSD XRW team, it pretty much does -- all it needs is an interface.
So this pull request adds the "-parser:info" (or just "-info") option to RosettaScripts. If you provide the option with the name of a mover, filter, task operation, or residue selector (e.g. `./bin/rosetta_scripts.default.linuxiccrelease -info FastDesign`) you can get a list of all of the XML-accessible options for that mover/filter/task operation/residue selector, with a description of each. (The app will print out help information and exit _in lieu_ of running a script with this option.)
This is not meant to be a substitute for the web documentation, of course; unlike the documentation, this is only useful if you already know what Rosetta component you need, and just want details of syntax. But it should be a time-saver for those in that boat.
Tasks:
- [x] Add the "-parser:info" option.
- [x] Support for movers.
- [x] Support for filters.
- [x] Support for task operations.
- [x] Support for residue selectors.
- [x] Make the output a bit more human-readable.
- [x] Documentation.
- [x] Beauty.
- [x] Integration test.