cli: add ability to indicate command completion expects a file name

This commit is contained in:
Lubomir Rintel 2016-07-12 15:43:56 +02:00
parent 9827725210
commit d73c0e57d5
3 changed files with 17 additions and 6 deletions

View file

@ -601,11 +601,12 @@ main (int argc, char *argv[])
loop = g_main_loop_new (NULL, FALSE); /* create main loop */
g_main_loop_run (loop); /* run main loop */
if (nm_cli.complete)
nm_cli.return_value = NMC_RESULT_SUCCESS;
/* Print result descripting text */
if (nm_cli.return_value != NMC_RESULT_SUCCESS) {
if (nm_cli.complete) {
/* Remove error statuses from command completion runs. */
if (nm_cli.return_value < NMC_RESULT_COMPLETE_FILE)
nm_cli.return_value = NMC_RESULT_SUCCESS;
} else if (nm_cli.return_value != NMC_RESULT_SUCCESS) {
/* Print result descripting text */
g_printerr ("%s\n", nm_cli.return_text->str);
}

View file

@ -63,7 +63,10 @@ typedef enum {
NMC_RESULT_ERROR_VERSIONS_MISMATCH = 9,
/* Connection/Device/AP not found */
NMC_RESULT_ERROR_NOT_FOUND = 10
NMC_RESULT_ERROR_NOT_FOUND = 10,
/* --complete-args signals a file name may follow */
NMC_RESULT_COMPLETE_FILE = 65,
} NMCResultCode;
typedef enum {

View file

@ -2089,6 +2089,13 @@ It's equivalent of using <literal>+ipv6.addresses</literal> syntax.</entry>
<para>Connection, device, or access point does not exist.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><errorcode>65</errorcode></term>
<listitem>
<para>When used with <option>--complete-args</option> option, a file name is expected to follow.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>