This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push:
new f94cdd572 ZOOKEEPER-4985: Fix zkCleanup.sh script to not fail on
non-standard config directories (#2324)
f94cdd572 is described below
commit f94cdd572eb3f04f6ba87df843b90999e896eaba
Author: Lars Francke <[email protected]>
AuthorDate: Fri May 15 02:31:40 2026 +0200
ZOOKEEPER-4985: Fix zkCleanup.sh script to not fail on non-standard config
directories (#2324)
Co-authored-by: Christopher Tubbs <[email protected]>
---
bin/zkCleanup.sh | 33 ++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/bin/zkCleanup.sh b/bin/zkCleanup.sh
index f3e54de03..2b8b87371 100755
--- a/bin/zkCleanup.sh
+++ b/bin/zkCleanup.sh
@@ -31,27 +31,34 @@
# use POSIX interface, symlink is followed automatically
ZOOBIN="${BASH_SOURCE-$0}"
ZOOBIN="$(dirname "$ZOOBIN")"
-ZOOBINDIR="$(cd "$ZOOBIN" && pwd)"
+ZOOBINDIR="$(cd "$ZOOBIN" && pwd)" || exit
if [[ -e "$ZOOBIN/../libexec/zkEnv.sh" ]]; then
# shellcheck source=bin/zkEnv.sh
- . "$ZOOBINDIR"/../libexec/zkEnv.sh
+ . "$ZOOBINDIR"/../libexec/zkEnv.sh "$@"
else
# shellcheck source=bin/zkEnv.sh
- . "$ZOOBINDIR"/zkEnv.sh
+ . "$ZOOBINDIR"/zkEnv.sh "$@"
fi
-ZOODATADIR="$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" | sed -e 's/.*=//')"
-ZOODATALOGDIR="$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" | sed -e 's/.*=//')"
+ZOODATADIR=""
+ZOODATALOGDIR=""
+
+# Only try to read config if ZOOCFG exists
+if [[ -f $ZOOCFG ]]; then
+ re='^[^=]*=[[:space:]]*(.*)[[:space:]]*$'
+ ZOODATADIR="$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" 2>/dev/null)"
+ [[ $ZOODATADIR =~ $re ]] && ZOODATADIR="${BASH_REMATCH[1]}"
+ ZOODATALOGDIR="$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" 2>/dev/null)"
+ [[ $ZOODATALOGDIR =~ $re ]] && ZOODATALOGDIR="${BASH_REMATCH[1]}"
+fi
ZOO_LOG_FILE=zookeeper-$USER-cleanup-$HOSTNAME.log
# shellcheck disable=SC2206
-flags=($JVMFLAGS)
-if [[ -z $ZOODATALOGDIR ]]; then
- "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR"
"-Dzookeeper.log.file=$ZOO_LOG_FILE" "${flags[@]}" \
- org.apache.zookeeper.server.PurgeTxnLog "$ZOODATADIR" "$@"
-else
- "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR"
"-Dzookeeper.log.file=$ZOO_LOG_FILE" "${flags[@]}" \
- org.apache.zookeeper.server.PurgeTxnLog "$ZOODATALOGDIR" "$ZOODATADIR" "$@"
-fi
+flags=("-Dzookeeper.log.dir=$ZOO_LOG_DIR" "-Dzookeeper.log.file=$ZOO_LOG_FILE"
$JVMFLAGS)
+
+directories=()
+[[ -n $ZOODATADIR ]] && directories=("$ZOODATADIR")
+[[ -n $ZOODATALOGDIR ]] && directories=("$ZOODATALOGDIR" "${directories[@]}")
+"$JAVA" "${flags[@]}" org.apache.zookeeper.server.PurgeTxnLog
"${directories[@]}" "$@"