[libvirt] [PATCH] virt-xml-validate: Allow input to be read from stdin
Johannes Holmberg
johannes.holmberg at dataductus.se
Tue May 21 07:35:58 UTC 2019
On Tue, 2019-05-21 at 07:36 +0200, Philipp Hahn wrote:
> Hello,
>
> Some nits:
>
> Am 20.05.19 um 13:57 schrieb Johannes Holmberg:
> > diff --git a/tools/virt-xml-validate.in b/tools/virt-xml-
> > validate.in
> > index 64aeaaaa33..2d2afb74ec 100644
> > --- a/tools/virt-xml-validate.in
> > +++ b/tools/virt-xml-validate.in
> > @@ -16,6 +16,16 @@
> >
> > set -e
> >
> > +TMPFILE=
> > +
> > +cleanup() {
> > + if [ $TMPFILE ]; then
>
> Missing Quoting.
> Better also give "-n"
>
> > + rm -f $TMPFILE
>
> Quoting
>
> > + fi
> > +}
> > +
> > +trap cleanup EXIT
> > +
> > case $1 in
>
> Not your fault, but also missing quoting.
>
> > -h | --h | --he | --hel | --help)
> > cat <<EOF
> > @@ -34,7 +44,7 @@ $0 (libvirt) @VERSION@
> > EOF
> > exit ;;
> > --) shift ;;
> > - -*)
> > + -?*)
> > echo "$0: unrecognized option '$1'" >&2
> > exit 1 ;;
> > esac
> > @@ -42,18 +52,27 @@ esac
> > XMLFILE="$1"
> > TYPE="$2"
> >
> > -if [ -z "$XMLFILE" ]; then
> > - echo "syntax: $0 XMLFILE [TYPE]" >&2
> > - exit 1
> > -fi
> > +if [ "$XMLFILE" = "-" ]; then
> > + TMPFILE=`mktemp --tmpdir virt-xml.XXXX`> + cat > $TMPFILE
>
> Quoting
>
> > +else
> > + if [ -z "$XMLFILE" ]; then
> > + echo "syntax: $0 XMLFILE [TYPE]" >&2
> > + exit 1
> > + fi
> >
> > -if [ ! -f "$XMLFILE" ]; then
> > - echo "$0: document $XMLFILE does not exist" >&2
> > - exit 2
> > + if [ ! -f "$XMLFILE" ]; then
> > + echo "$0: document $XMLFILE does not exist" >&2
> > + exit 2
> > + fi
> > fi
> >
> > if [ -z "$TYPE" ]; then
> > - ROOT=`xmllint --stream --debug "$XMLFILE" 2>/dev/null | grep "^0
> > 1 " | awk '{ print $3 }'`
> > + if [ $TMPFILE ]; then
> > + ROOT=`xmllint --stream --debug - < "$TMPFILE" 2>/dev/null |
> > grep "^0 1 " | awk '{ print $3 }'`
> > + else
> > + ROOT=`xmllint --stream --debug "$XMLFILE" 2>/dev/null | grep
> > "^0 1 " | awk '{ print $3 }'`
> > + fi
> > case "$ROOT" in
> > *domainsnapshot*) # Must come first, since *domain* is a
> > substring
> > TYPE="domainsnapshot"
> > @@ -101,6 +120,9 @@ if [ ! -f "$SCHEMA" ]; then
> > exit 4
> > fi
> >
> > -xmllint --noout --relaxng "$SCHEMA" "$XMLFILE"
> > -
> > +if [ $TMPFILE ]; then
>
> Quoting
> "-n"
>
> > + xmllint --noout --relaxng "$SCHEMA" - < "$TMPFILE"
> > +else
> > + xmllint --noout --relaxng "$SCHEMA" "$XMLFILE"
> > +fi
> > exit
Good point(s). I can only imagine I skipped the quoting because TMPFILE
is known to contain a safe string, but that is a poor excuse really.
I'll post a v2 shortly.
/Johannes
More information about the libvir-list
mailing list