From b2ea248ef7c715aa2a65657ed2e91968538ae07b Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 19 Aug 2013 16:26:41 -0600 Subject: [PATCH] virt-xml-validate: add --help/--version option All good tools should have --help and --version output :) Furthermore, we want to ensure a failed exit if xmllint fails, or even for 'virt-xml-validate > /dev/full'. * tools/virt-xml-validate.in: Add option parsing. Output errors to stderr. Update documentation to match. * tools/Makefile.am (virt-xml-validate): Substitute version. Signed-off-by: Eric Blake --- tools/Makefile.am | 5 ++-- tools/virt-xml-validate.in | 50 +++++++++++++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/tools/Makefile.am b/tools/Makefile.am index f85c35c033..03c9fd0007 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -77,8 +77,9 @@ dist_man8_MANS = virt-sanlock-cleanup.8 endif virt-xml-validate: virt-xml-validate.in Makefile - $(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|' < $< > $@ \ - || (rm $@ && exit 1) && chmod +x $@ + $(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \ + -e 's|[@]VERSION@|$(VERSION)|g' \ + < $< > $@ || (rm $@ && exit 1) && chmod +x $@ virt-xml-validate.1: virt-xml-validate.in $(top_srcdir)/configure.ac $(AM_V_GEN)$(POD2MAN) --name VIRT-XML-VALIDATE $< $(srcdir)/$@ \ diff --git a/tools/virt-xml-validate.in b/tools/virt-xml-validate.in index 9c584edf0b..5ba034331e 100644 --- a/tools/virt-xml-validate.in +++ b/tools/virt-xml-validate.in @@ -17,16 +17,39 @@ set -e +case $1 in + -h | --h | --he | --hel | --help) + cat <&2 + exit 1 ;; +esac + XMLFILE="$1" TYPE="$2" if [ -z "$XMLFILE" ]; then - echo "syntax: $0 XMLFILE [TYPE]" + echo "syntax: $0 XMLFILE [TYPE]" >&2 exit 1 fi if [ ! -f "$XMLFILE" ]; then - echo "$0: document $XMLFILE does not exist" + echo "$0: document $XMLFILE does not exist" >&2 exit 2 fi @@ -52,7 +75,7 @@ if [ -z "$TYPE" ]; then TYPE="nodedev" ;; *) - echo "$0: cannot determine schema type for $XMLFILE" + echo "$0: cannot determine schema type for $XMLFILE" >&2 exit 3 esac fi @@ -60,13 +83,13 @@ fi SCHEMA="@schemadir@/${TYPE}.rng" if [ ! -f "$SCHEMA" ]; then - echo "$0: schema $SCHEMA does not exist" + echo "$0: schema $SCHEMA does not exist" >&2 exit 4 fi xmllint --noout --relaxng "$SCHEMA" "$XMLFILE" -exit 0 +exit : <<=cut =pod @@ -78,6 +101,7 @@ exit 0 =head1 SYNOPSIS virt-xml-validate XML-FILE [SCHEMA-NAME] + virt-xml-validate OPTION =head1 DESCRIPTION @@ -117,6 +141,20 @@ The schema for the XML format used to declare driver capabilities =back +=head1 OPTIONS + +=over + +=item B<-h, --help> + +Display command line help usage then exit. + +=item B<-V, --version> + +Display version information then exit. + +=back + =head1 EXIT STATUS Upon successful validation, an exit status of 0 will be set. Upon @@ -134,7 +172,7 @@ Alternatively report bugs to your software distributor / vendor. =head1 COPYRIGHT -Copyright (C) 2009-2012 by Red Hat, Inc. +Copyright (C) 2009-2013 by Red Hat, Inc. Copyright (C) 2009 by Daniel P. Berrange =head1 LICENSE