lfrancke commented on code in PR #2324:
URL: https://github.com/apache/zookeeper/pull/2324#discussion_r2911152456


##########
bin/zkCleanup.sh:
##########
@@ -31,27 +31,43 @@
 # 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
+  ZOODATADIR="$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" 2>/dev/null | sed -e 
's/.*=//')"
+  ZOODATALOGDIR="$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" 2>/dev/null | sed 
-e 's/.*=//')"
+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" "$@"
+
+# If config provides directories, use them; otherwise pass all args to 
PurgeTxnLog
+if [[ -n $ZOODATADIR ]]; then
+  if [[ -z $ZOODATALOGDIR ]]; then
+    # Only dataDir specified
+    "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR" 
"-Dzookeeper.log.file=$ZOO_LOG_FILE" \
+      "${flags[@]}" org.apache.zookeeper.server.PurgeTxnLog "$ZOODATADIR" "$@"
+  else
+    # Both dataDir and dataLogDir specified
+    "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR" 
"-Dzookeeper.log.file=$ZOO_LOG_FILE" \
+      "${flags[@]}" org.apache.zookeeper.server.PurgeTxnLog "$ZOODATALOGDIR" 
"$ZOODATADIR" "$@"
+  fi
 else
-  "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR" 
"-Dzookeeper.log.file=$ZOO_LOG_FILE" "${flags[@]}" \
-    org.apache.zookeeper.server.PurgeTxnLog "$ZOODATALOGDIR" "$ZOODATADIR" "$@"
+  # No config or config doesn't specify directories - pass all args to 
PurgeTxnLog
+  "$JAVA" "-Dzookeeper.log.dir=$ZOO_LOG_DIR" 
"-Dzookeeper.log.file=$ZOO_LOG_FILE" \
+    "${flags[@]}" org.apache.zookeeper.server.PurgeTxnLog "$@"
 fi

Review Comment:
   Yep, that is a much better approach :(
   
   I couldn't apply the patch directly from GitHub due to
   
   >  Applying suggestions on deleted lines is currently not supported. 
   
   So I did it manually in [`63b2e59` (this 
PR)](https://github.com/apache/zookeeper/pull/2324/commits/63b2e59a33fa9ae7d81134bb54ef1a2d8c5144d8)
 together with your suggestions for the flags



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to