This patch adds option -h to cgdelete tool
Signed-off-by: Ivana Hutarova Varekova <varek...@redhat.com> --- src/tools/cgdelete.c | 45 ++++++++++++++++++++++++++++++++------------- 1 files changed, 32 insertions(+), 13 deletions(-) diff --git a/doc/man/cgdelete.1 b/doc/man/cgdelete.1 index 73d2924..f1e17a7 100644 --- a/doc/man/cgdelete.1 +++ b/doc/man/cgdelete.1 @@ -7,7 +7,7 @@ cgdelete \- remove control group(s) .SH SYNOPSIS -\fBcgdelete\fR [\fB-r\fR] [<\fIcontrollers\fR>:\fI<path\fR>] ... +\fBcgdelete\fR [\fB-h\fR] [\fB-r\fR] [<\fIcontrollers\fR>:\fI<path\fR>] ... .SH DESCRIPTION The \fBcgdelete\fR @@ -19,7 +19,11 @@ Defines control group to delete. There can be multiple control groups specified. .TP -.B -r +.B -h, --help +Display this help and exit. + +.TP +.B -r, --recursive Recursively remove all subgroups. .SH SEE ALSO diff --git a/src/tools/cgdelete.c b/src/tools/cgdelete.c index 7da6ab4..ba8e75f 100644 --- a/src/tools/cgdelete.c +++ b/src/tools/cgdelete.c @@ -21,9 +21,30 @@ #include <string.h> #include <errno.h> #include <unistd.h> +#include <getopt.h> #include "tools-common.h" +static struct option const long_options[] = +{ + {"recursive", no_argument, NULL, 'r'}, + {"help", no_argument, NULL, 'h'}, + {NULL, 0, NULL, 0} +}; + +static void usage(int status, const char *program_name) +{ + if (status != 0) + fprintf(stderr, "Wrong input parameters," + " try %s --help' for more information.\n", + program_name); + else { + printf("Usage: %s [-h ] [-r ] [<controllers>:<path>] ...\n", + program_name); + } +} + + int main(int argc, char *argv[]) { int ret = 0; @@ -38,34 +59,32 @@ int main(int argc, char *argv[]) struct cgroup_controller *cgc; if (argc < 2) { - fprintf(stderr, "Usage is %s [-r] " - "<list of controllers>:<relative path to cgroup> " - "[...]\n", - argv[0]); + usage(1, argv[0]); return -1; } /* * Parse arguments */ - while ((c = getopt(argc, argv, "r")) > 0) { + while ((c = getopt_long(argc, argv, "rh", + long_options, NULL)) > 0) { switch (c) { case 'r': flags |= CGFLAG_DELETE_RECURSIVE; break; + case 'h': + usage(0, argv[0]); + ret = 0; + goto err; default: - fprintf(stderr, "%s: " - "invalid command line option\n", - argv[0]); - return -1; - break; + usage(1, argv[0]); + ret = -1; + goto err; } } if (optind >= argc) { - fprintf(stderr, "%s: " - "no groups to delete\n", - argv[0]); + usage(1, argv[0]); ret = -1; goto err; } ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel