Review: oiiotool - #119
Conversation
|
Oooh! How exciting. Can't wait to put this through its paces. Looks good to me (for the master branch only). We can let the tool iterate for a few versions, and once its in a semi-stable place can backport to the 0.10 branch. |
|
Pushed an update containing an important bug fix (forgot to close() the ImageOutput!) and a bunch more functionality from iconvert. I'm going to keep adding functionality for a couple days, then I'll commit a preliminary version (to master only, of course). |
…E if the option is found; (b) %@ indicates an immediate callback to make (in addition to parsng the other arguments); (c) Allow callback for bool flags, and make option matching ignore characters after a ':' in the option; (d) wrap lines at word breaks when printing usage message.
|
Pushed some updates. |
|
Any objections to doing an initial commit on this? Mostly so that Lukasz can build functionality onto this rather than putting it into the moribund iprocess. |
|
LGTM On Mon, Jul 18, 2011 at 3:11 PM, lgritz
|
|
Merged. I'll keep beefing it up, and adding tests and documentation, in future pull requests. |
Here's something I was playing with over the long weekend.
'oiiotool' is a first stab at a general-purpose command-line tool that accesses all the OIIO image manipulation functionality. It's a work in progress, though I'm happy to check it into the development trunk as soon as somebody thinks it's useful. (N.B. I've conveniently made a name that won't clash with other packages, as some of our other utilities currently do.)
At this point, it's already got most of the functionality of iinfo, idiff, and iconvert (a few features from each are not yet implemented, but on the way). I'm tempted to say that when it's feature complete, it should completely subsume iprocess, idiff, and iinfo. I think it's up for debate whether the more specialized iconvert and maketx ought to disappear, or if it's better for those to remain separate binaries and have the shortest possible 'help' screen for its specialized function.
Note that this builds on some Argparse changes I posted a few days ago, but which have not yet been reviewed. Perhaps their utility is more obvious now.
Usage examples:
In theory, it's a lot like 'iprocess' was once imagined to be, but in practice, it's got a better internal architecture, makes much smarter use of Argparse, and should be really really simple to add new actions and options as we think of new functionality we'd like to access from the command line.
It's minimally documented -- like I said, WIP -- but I think the intent and general structure should be clear.
Feedback appreciated.