Use non-Bashism indirect reference in parse_options. Change $@ to ${@:-} and update parse_options in all tools.

This commit is contained in:
Daniel Nichter
2012-08-14 11:46:47 -06:00
parent 9ddf90eeca
commit 3602bb252f
6 changed files with 87 additions and 72 deletions

View File

@@ -119,19 +119,22 @@ usage_or_errors() {
echo
echo "Options and values after processing arguments:"
echo
for opt in $(ls "$PO_DIR"); do
local varname="OPT_$(echo "$opt" | tr a-z- A-Z_)"
local varvalue="${!varname}"
if ! grep -q "type:" "$PO_DIR/$opt" >/dev/null; then
if [ "$varvalue" -a "$varvalue" = "yes" ];
then varvalue="TRUE"
else
varvalue="FALSE"
(
cd "$PO_DIR"
for opt in *; do
local varname="OPT_$(echo "$opt" | tr a-z- A-Z_)"
eval local varvalue=\$$varname
if ! grep -q "type:" "$PO_DIR/$opt" >/dev/null; then
if [ "$varvalue" -a "$varvalue" = "yes" ];
then varvalue="TRUE"
else
varvalue="FALSE"
fi
fi
fi
printf -- " --%-30s %s" "$opt" "${varvalue:-(No value)}"
echo
done
printf -- " --%-30s %s" "$opt" "${varvalue:-(No value)}"
echo
done
)
return 1
fi
@@ -191,7 +194,7 @@ parse_options() {
_parse_config_files "/etc/percona-toolkit/percona-toolkit.conf" "/etc/percona-toolkit/$TOOL.conf" "$HOME/.percona-toolkit.conf" "$HOME/.$TOOL.conf"
fi
_parse_command_line "$@"
_parse_command_line "${@:-""}"
}
_parse_pod() {
@@ -283,7 +286,7 @@ _eval_po() {
_parse_config_files() {
for config_file in "$@"; do
for config_file in "${@:-""}"; do
test -f "$config_file" || continue
while read config_opt; do
@@ -317,7 +320,7 @@ _parse_command_line() {
local required_arg=""
local spec=""
for opt in "$@"; do
for opt in "${@:-""}"; do
if [ "$opt" = "--" -o "$opt" = "----" ]; then
HAVE_EXT_ARGV=1
continue