Surprising command line options handling
Daniele Nicolodi
daniele at grinta.net
Tue Feb 24 00:59:07 CET 2015
On 24/02/15 00:19, Doug Barton wrote:
> On 2/23/15 2:51 PM, Daniele Nicolodi wrote:
>> Hello,
>>
>> I've been struggling quite a long while today trying to understand why
>> the following command does not do what I expected:
>>
>> gpg --export-secret-subkeys 41E999D7! \
>> --export-options export-reset-subkey-passwd
>>
>> It does not reset the password on the exported subkey.
>>
>> After some head scratching I recognized that gpg stop parsing arguments
>> when it encounters the key id and ignores what follows.
>
> That's not 100% accurate, but I won't quibble. :)
>
> The man page makes it very clear that the format is as follows:
>
> gpg2 [--homedir dir] [--options file] [options] command [args]
>
> options come before commands, and anything after the command is
> interpreted as an argument to the command.
In retrospect this is quite clear.
However, the ordering is not really enforced: this
gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd --armor \
whatever 41E999D7!
or this
gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd whatever --armor \
41E999D7!
appear to be valid command lines.
I find it surprising that unrecognized tokens are simply ignored.
Wouldn't it be preferable to error out, at least on unrecognized options?
Cheers,
Daniele
More information about the Gnupg-users
mailing list