From af5407aaaf8e595e76c4713872e5a9d3e5027122 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 11 Nov 2022 15:03:13 -0500 Subject: [PATCH] utils/parse_object_definitions: miscellaneous cleanups. 1. Use /bin/sh instead of /bin/bash 2. Use basic (non-extended) regular expressions with grep 3. Use plain "grep" instead of "grep --extended-regexp --color=never" 4. Write the result to stdout; drop the second CLI argument --- utils/parse_object_definitions | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/utils/parse_object_definitions b/utils/parse_object_definitions index dd30368..0d164a2 100755 --- a/utils/parse_object_definitions +++ b/utils/parse_object_definitions @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # # Parse the object names out of Nagios' xdata/xodtemplate.h, and # convert them to their definition format. @@ -8,30 +8,20 @@ EXIT_USAGE=1 EXIT_INPUT_FILE_DOESNT_EXIST=2 -EXIT_OUTPUT_FILE_EXISTS=3 -if [ $# -lt 2 ]; then - echo "Usage: $0 " +if [ $# -lt 1 ]; then + echo "Usage: $0 " exit $EXIT_USAGE fi INFILE="$1" -OUTFILE="$2" if [ ! -f "$INFILE" ]; then echo "Error: input file $INFILE doesn't exist." exit $EXIT_INPUT_FILE_DOESNT_EXIST fi -if [ -f "$OUTFILE" ]; then - echo "Error: output file $OUTFILE already exists." - exit $EXIT_OUTPUT_FILE_EXISTS -fi - -# Common options. Color screws up the output. -GREP="grep --extended-regexp --color=never" - # Grep grabs all of the "#define XODTEMPLATE_..." lines, except for # XODTEMPLATE_NONE, which ain't real. # @@ -40,9 +30,9 @@ GREP="grep --extended-regexp --color=never" # 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:]_]+' "$INFILE" \ - | $GREP -v 'XODTEMPLATE_NONE' \ - | sed 's/ XODTEMPLATE_//g' \ - | tr '[A-Z]' '[a-z]' \ - | sort \ - | sed -e 's/^/\"define /g' -e 's/$/\"/g' >> "$OUTFILE" +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' -- 2.43.2