ports/sysutils/bacula/patches/patch-examples_autochangers_chio-changer-openbsd

37 lines
1.4 KiB
Text

Index: examples/autochangers/chio-changer-openbsd
--- examples/autochangers/chio-changer-openbsd.orig
+++ examples/autochangers/chio-changer-openbsd
@@ -96,22 +96,17 @@ case ${cmd} in
exit $?
;;
listall)
- # XXX only one drive is queried
- _list=$(${0} ${1} list)
- _loaded_s=$(${0} ${1} loaded ${slot} ${device} ${drive})
- _loaded_t=$(${CHIO} -f ${ctl} status -v | grep "drive ${drive}" | awk '{ print $NF }' | sed -e 's,<,,' -e 's,:.*,,')
-
- [ -n "${_list}" -a -n "${_loaded_s}" -a -n "${_loaded_t}" ] || exit 1
-
- (for i in ${_list}; do
- echo "S:${i}" | sed 's/\(.*\):/\1:F:/'
- done
- echo S:${_loaded_s}:E
- if [ "${_loaded_s}" -ne 0 ]; then
- echo D:${drive}:F:${_loaded_s}:${_loaded_t}
- else
- echo D:${drive}:E
- fi) | sort
+ ${CHIO} -f ${ctl} status -vS | \
+ sed -ne '
+ s/^slot *\([0-9]*\):.*ENAB.*FULL.*voltag.*<\([^:]*\):.*/I:\1:F:\2/p;t
+ s/^slot *\([0-9]*\):.*FULL.*voltag.*<\([^:]*\):.*/S:\1:F:\2/p;t
+ s/^drive *\([0-9]*\):.*FULL.*voltag.*<\([^:]*\):.*source.*<[^0-9]*\([0-9]*\)>.*/D:\1:F:\3:\2/p;t
+ s/^slot *\([0-9]*\):.*ENAB.*voltag.*<\([^:]*\):.*/I:\1:E/p;t
+ s/^slot *\([0-9]*\):.*voltag.*<\([^:]*\):.*/S:\1:E/p;t
+ s/^drive *\([0-9]*\):.*voltag.*<\([^:]*\):.*/D:\1:E/p' | \
+ awk -F: '{ for (n = 1; n <= NF; n++) printf "%s%s",
+ (n == ($1 == "D" ? 4 : 2)) ? ($n == "" ? 0 : $n + 1) : $n,
+ (n == NF) ? "\n" : ":" }'
;;
loaded)
# XXX output the first empty slot if the drive is loaded