<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jul 23, 2018 at 9:34 PM Doron Behar <<a href="mailto:doron.behar@gmail.com">doron.behar@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello GnuPG developers,<br>
<br>
I would like to discuss a subject that has been really bothering me and<br>
I hope I'm not the only one.<br></blockquote><div><br></div><div>I am not a genuine GnuPG developer, I am rather a user.</div><div>I have noticed it as well that the commands and sub-commands of `gpg`</div><div>are not clearly distinguishable from their options, and this makes it difficult</div><div>to use (or to understand a command in a script). So I think that your proposal</div><div>is a good idea.</div><div><br></div><div>I also have noticed that `gpg` does more things that it needs to do. For example,</div><div>why should it do compression, when there are lots of tools out there for doing</div><div>compression? But maybe I am missing something, since I am not an expert</div><div>on cryptographic things.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I've been using `gpg` for a while. Honestly, I must say it's<br>
command-line user interface is super uncomfortable. Let me explain:<br>
<br>
The problem resides in the fact that it accepts only `options` (starting<br>
with `--` or `-`. Shell completion engines are better built for commands<br>
that accept both options and commands. This makes it easier for the user<br>
(getting help either from the shell tab completion engine or the<br>
program's manual) to distinguish between commands and the optional<br>
flags.<br>
<br>
Inspired by the (super comfortable IMO) command line user interface of<br>
`git`, I've had a vision for a new set of `gpg` subcommands and the<br>
corresponding arguments and options I think naming them so would be<br>
comfortable enough. I've attached a text file with the subcommands and<br>
the arguments and options they should accept. I hope it's format is<br>
clear.<br>
<br>
I would really like to improve the usability of `gpg` and I think this<br>
is a crucial step towards making it more user friendly. From reading the<br>
source code, I've noticed GnuPG implements it's own command line<br>
arguments parsing. Maybe it'll be better to use a standard library like<br>
`argp.h`?<br>
<br>
This obviously mean that it would make the next version of `gpg`<br>
incompatible with the older versions but I really think it's worth the<br>
effort.<br></blockquote><div><br></div><div>Maybe it can preserve the backwards compatibility, but the code will have</div><div>to be a little bit more complex.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I'd love to hear your opinions.<br></blockquote><div><br></div><div>By the way, can you have a look at this: <a href="https://github.com/EasyGnuPG/egpg">https://github.com/EasyGnuPG/egpg</a></div><div>It is an attempt to make GnuPG easier for beginners, and it uses the model</div><div>of sub-commands that you describe.</div><div><br></div><div>Regards,</div><div>Dashamir</div></div></div>