From: Michael Orlitzky Date: Fri, 11 Nov 2022 21:18:15 +0000 (-0500) Subject: utils/parse_object_definitions: make POSIX-compatible. X-Git-Tag: v0.4~10 X-Git-Url: http://gitweb.michael.orlitzky.com/?p=nagios-mode.git;a=commitdiff_plain;h=88830b7fb9158f62b03876c3ed2c785706b2627d utils/parse_object_definitions: make POSIX-compatible. This script now uses an ugly sed script instead of relying on the non-portable "--only-matching" flag of grep. --- diff --git a/utils/parse_object_definitions b/utils/parse_object_definitions index 0d164a2..aaa6c31 100755 --- a/utils/parse_object_definitions +++ b/utils/parse_object_definitions @@ -22,17 +22,15 @@ if [ ! -f "$INFILE" ]; then exit $EXIT_INPUT_FILE_DOESNT_EXIST fi -# Grep grabs all of the "#define XODTEMPLATE_..." lines, except for -# XODTEMPLATE_NONE, which ain't real. -# -# Sed removes the "XODTEMPLATE_" prefixes, then tr lowercases everything. -# -# Oh and we sort everything, add "define ", and surround each line with -# quotes, because we can get away with it here. -# -grep --only-matching '[[:space:]]XODTEMPLATE_[[:alnum:]_]\{1,\}' "$INFILE" \ - | grep -v 'XODTEMPLATE_NONE' \ - | sed 's/ XODTEMPLATE_//g' \ - | tr '[A-Z]' '[a-z]' \ - | sort \ - | sed -e 's/^/\"define /g' -e 's/$/\"/g' +# Sed grabs all of the "#define XODTEMPLATE_FOO" lines, pulls out the +# FOO part, and then prints "define FOO", surrounded in +# quotes. Afterwards we prune the two lines corresponding to +# XODTEMPLATE_NULL and XODTEMPLATE_NONE which do not correspond to +# real object types. Finally we lowercase everything with tr, and sort +# the result. +XOD_REGEX='#define[[:space:]]\{1,\}XODTEMPLATE_\([^[:space:]]\{1,\}\)[[:space:]]\{1,\}.*' + +sed -n "s/${XOD_REGEX}/\"define \1\"/p" "${INFILE}" \ + | sed '/define NULL\|NONE/d' \ + | tr '[A-Z]' '[a-z]' \ + | sort \