]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virt-xml-validate: add --help/--version option
authorEric Blake <eblake@redhat.com>
Mon, 19 Aug 2013 22:26:41 +0000 (16:26 -0600)
committerEric Blake <eblake@redhat.com>
Tue, 20 Aug 2013 02:23:39 +0000 (20:23 -0600)
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 <eblake@redhat.com>
tools/Makefile.am
tools/virt-xml-validate.in

index f85c35c033a8e572f9437ccf7127440f459cb220..03c9fd0007c9a2942dc925f0ffb965cba5afc1e6 100644 (file)
@@ -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)/$@ \
index 9c584edf0bfe08c75f3732f08b6538bfc0517bd2..5ba034331e9d1473810af9e54cbd6dfb8b5fe98e 100644 (file)
 
 set -e
 
+case $1 in
+  -h | --h | --he | --hel | --help)
+    cat <<EOF
+Usage:
+  $0 XML-FILE [SCHEMA-NAME]
+  $0 OPTION
+
+Options:
+  -h | --help        Display program help
+  -V | --version     Display program version
+EOF
+    exit ;;
+  -V | --v | --ve | --ver | --vers | --versi | --versio | --version)
+    cat <<EOF
+$0 (libvirt) @VERSION@
+EOF
+    exit ;;
+  --) shift ;;
+  -*)
+    echo "$0: unrecognized option '$1'" >&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