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