summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-07-12 15:43:56 +0200
committerLubomir Rintel <lkundrak@v3.sk>2016-08-01 13:52:36 +0200
commitd73c0e57d5940fa906e5f8aeb59b901a904e8df0 (patch)
tree5506ea7685c62e6749c98ecba31f804567ca91fd
parent9827725210c4f759e8883d8eeeb62a539801446c (diff)
downloadNetworkManager-d73c0e57d5940fa906e5f8aeb59b901a904e8df0.tar.gz
cli: add ability to indicate command completion expects a file name
-rw-r--r--clients/cli/nmcli.c11
-rw-r--r--clients/cli/nmcli.h5
-rw-r--r--man/nmcli.xml7
3 files changed, 17 insertions, 6 deletions
diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c
index 43b1ae9b42..f3dc825d8c 100644
--- a/clients/cli/nmcli.c
+++ b/clients/cli/nmcli.c
@@ -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);
}
diff --git a/clients/cli/nmcli.h b/clients/cli/nmcli.h
index c867ad5f9f..a8908685bd 100644
--- a/clients/cli/nmcli.h
+++ b/clients/cli/nmcli.h
@@ -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 {
diff --git a/man/nmcli.xml b/man/nmcli.xml
index 0d403202f4..739efa9ce9 100644
--- a/man/nmcli.xml
+++ b/man/nmcli.xml
@@ -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>