in reply to How do I process many (conflicting) command line parameters?
but many of the switches are mutually exclusive
If you're intent on sticking to the *nix style, this won't help, but good interface design suggests that you don't allow the user to enter conflicting mutually exclusive input.
In the simple case of say -l & -p for landscape/portrait output, instead opt got -Ol or -Op. (Some GetOpt processors might be able to handle this kind of mutual exclusivity.)
For mutually exclusive actions, I'd go for something like -Ac, -Ae, -Au, -Ad (create/edit/update/delete) rather than -C, -E, -U, -D.
If the logic calls for some subsets of the actions to be combinable, -Aceud then define -Ace, -Acu, -Acd, -Aeu, -Aed, -Aud, -Aceu, -Aced, -Acud, -Aeud & -Aceud; or whichever of those are valid. In effect, the valid combinations become separate commands.
(Note:I'm aware that for most things doing combinations of Create/Edit/Update/Delete doesn't make sense; its just an example.)
|
|---|