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.)
In reply to Re: How do I process many (conflicting) command line parameters?
by BrowserUk
in thread How do I process many (conflicting) command line parameters?
by ozboomer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |