From 3c4b5a852d5bb9070c7fb4428aa50f2e3e1f6e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 19 Sep 2013 11:25:49 +0200 Subject: [PATCH] Confirm success for each tc -batch command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If `tc -force -batch' is fed by a controlling program from a pipe, it's not possible to recognize when a command has been processes successfully. This patch adds an optional `-OK' option to the tc(8) tool, so `tc -force -OK -batch' will print "OK\n" to standard output on each successfully completed tc command. Signed-off-by: Petr Písař --- man/man8/tc.8 | 8 +++++++- tc/tc.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tc/tc.c b/tc/tc.c index 9b50e74..b43bb47 100644 --- a/tc/tc.c +++ b/tc/tc.c @@ -39,6 +39,7 @@ int batch_mode = 0; int resolve_hosts = 0; int use_iec = 0; int force = 0; +int ok = 0; struct rtnl_handle rth; static void *BODY = NULL; /* cached handle dlopen(NULL) */ @@ -183,7 +184,7 @@ noexist: static void usage(void) { fprintf(stderr, "Usage: tc [ OPTIONS ] OBJECT { COMMAND | help }\n" - " tc [-force] -batch filename\n" + " tc [-force] [-OK] -batch filename\n" "where OBJECT := { qdisc | class | filter | action | monitor }\n" " OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] | -p[retty] | -b[atch] [filename] }\n"); } @@ -251,6 +252,9 @@ static int batch(const char *name) ret = 1; if (!force) break; + } else if (ok) { + printf("OK\n"); + fflush(stdout); } } if (line) @@ -288,6 +292,8 @@ int main(int argc, char **argv) return 0; } else if (matches(argv[1], "-force") == 0) { ++force; + } else if (matches(argv[1], "-OK") == 0) { + ++ok; } else if (matches(argv[1], "-batch") == 0) { argc--; argv++; if (argc <= 1) -- 1.8.3.1