]> git.proxmox.com Git - mirror_qemu.git/blame - scripts/hxtool
rbd: Fix to cleanly reject -drive without pool or image
[mirror_qemu.git] / scripts / hxtool
CommitLineData
5824d651
BS
1#!/bin/sh
2
3hxtoh()
4{
5 flag=1
fb21ced7 6 while read -r str; do
5824d651
BS
7 case $str in
8 HXCOMM*)
9 ;;
b40292e7 10 STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
5824d651
BS
11 ;;
12 *)
004efc96 13 test $flag -eq 1 && printf "%s\n" "$str"
5824d651
BS
14 ;;
15 esac
16 done
17}
18
43f187a5
PB
19print_texi_heading()
20{
21 if test "$*" != ""; then
22 printf "@subsection %s\n" "$*"
23 fi
24}
25
5824d651
BS
26hxtotexi()
27{
28 flag=0
6c913ba5 29 line=1
fb21ced7 30 while read -r str; do
5824d651
BS
31 case "$str" in
32 HXCOMM*)
33 ;;
6c913ba5
JK
34 STEXI*)
35 if test $flag -eq 1 ; then
5a1de0b3 36 printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
6c913ba5
JK
37 exit 1
38 fi
39 flag=1
40 ;;
41 ETEXI*)
42 if test $flag -ne 1 ; then
5a1de0b3 43 printf "line %d: syntax error: expected STEXI, found '%s'\n" "$line" "$str" >&2
6c913ba5
JK
44 exit 1
45 fi
46 flag=0
5824d651 47 ;;
b40292e7
JK
48 SQMP*|EQMP*)
49 if test $flag -eq 1 ; then
5a1de0b3 50 printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
b40292e7
JK
51 exit 1
52 fi
53 ;;
5824d651 54 DEFHEADING*)
43f187a5 55 print_texi_heading "$(expr "$str" : "DEFHEADING(\(.*\))")"
5824d651 56 ;;
a3adb7ad 57 ARCHHEADING*)
43f187a5 58 print_texi_heading "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
a3adb7ad 59 ;;
5824d651 60 *)
5a1de0b3 61 test $flag -eq 1 && printf '%s\n' "$str"
5824d651
BS
62 ;;
63 esac
6c913ba5 64 line=$((line+1))
5824d651
BS
65 done
66}
67
b40292e7
JK
68hxtoqmp()
69{
70 IFS=
71 flag=0
02e95918 72 line=1
b40292e7
JK
73 while read -r str; do
74 case "$str" in
75 HXCOMM*)
76 ;;
77 SQMP*)
78 if test $flag -eq 1 ; then
5a1de0b3 79 printf "line %d: syntax error: expected EQMP, found '%s'\n" "$line" "$str" >&2
b40292e7
JK
80 exit 1
81 fi
82 flag=1
83 ;;
84 EQMP*)
85 if test $flag -ne 1 ; then
5a1de0b3 86 printf "line %d: syntax error: expected SQMP, found '%s'\n" "$line" "$str" >&2
b40292e7
JK
87 exit 1
88 fi
89 flag=0
90 ;;
91 STEXI*|ETEXI*)
92 if test $flag -eq 1 ; then
5a1de0b3 93 printf "line %d: syntax error: expected EQMP, found '%s'\n" "$line" "$str" >&2
b40292e7
JK
94 exit 1
95 fi
96 ;;
97 *)
5a1de0b3 98 test $flag -eq 1 && printf '%s\n' "$str"
b40292e7
JK
99 ;;
100 esac
02e95918 101 line=$((line+1))
b40292e7
JK
102 done
103}
104
5824d651
BS
105case "$1" in
106"-h") hxtoh ;;
107"-t") hxtotexi ;;
b40292e7 108"-q") hxtoqmp ;;
5824d651
BS
109*) exit 1 ;;
110esac
5c2f8d2d
BS
111
112exit 0