From 602aafe1194bb2425f6b74dc2356999a1538602a Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 12 May 2021 10:14:02 +0200 Subject: [PATCH] [fix-a-javadoc] Modernize, tell xargs to run in parallel --- resources/fix-a-javadoc.sh | 52 +++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/resources/fix-a-javadoc.sh b/resources/fix-a-javadoc.sh index eaac0c886..94e8f31fd 100755 --- a/resources/fix-a-javadoc.sh +++ b/resources/fix-a-javadoc.sh @@ -17,11 +17,6 @@ popd > /dev/null SMACK_DIR=$(realpath "${SCRIPTDIR}"/..) -FIND_ALL_JAVA_SRC="find ${SMACK_DIR} \ - -type f \ - -name *.java \ - -print" - declare -A SMACK_EXCEPTIONS SMACK_EXCEPTIONS[NotConnectedException]="if the XMPP connection is not connected." SMACK_EXCEPTIONS[InterruptedException]="if the calling thread was interrupted." @@ -71,7 +66,8 @@ SMACK_EXCEPTIONS[FailedNonzaException]="if an XMPP protocol failure was received MODE="" -while getopts dm: OPTION "$@"; do +SMACK_DIR=$(realpath "${SCRIPTDIR}"/..) +while getopts dm:p: OPTION "$@"; do case $OPTION in d) set -x @@ -79,6 +75,9 @@ while getopts dm: OPTION "$@"; do m) MODE=${OPTARG} ;; + p) + SMACK_DIR=${OPTARG} + ;; *) echo "Unknown option ${OPTION}" exit 1 @@ -86,26 +85,43 @@ while getopts dm: OPTION "$@"; do esac done +JAVA_SOURCES_LIST=$(mktemp) +onExit() { + rm "${JAVA_SOURCES_LIST}" +} +trap onExit EXIT + +find ${SMACK_DIR} \ + -type f \ + -name "*.java" \ + -print > "${JAVA_SOURCES_LIST}" + +NPROC=$(nproc) + sed_sources() { sedScript=${1} - ${FIND_ALL_JAVA_SRC} |\ - xargs sed \ - --in-place \ - --follow-symlinks \ - --regexp-extended \ - "${sedScript}" + + xargs \ + --max-procs="${NPROC}" \ + --max-args=8 \ + -- \ + sed \ + --in-place \ + --follow-symlinks \ + --regexp-extended \ + "${sedScript}" < "${JAVA_SOURCES_LIST}" } show_affected() { echo ${!SMACK_EXCEPTIONS{@}} for exception in ${!SMACK_EXCEPTIONS[@]}; do - ${FIND_ALL_JAVA_SRC} |\ - xargs grep " \* @throws $exception$" || true + xargs grep " \* @throws $exception$" < "${JAVA_SOURCES_LIST}" done for exception in ${!SMACK_EXCEPTIONS[@]}; do - count=$(${FIND_ALL_JAVA_SRC} |\ - xargs grep " \* @throws $exception$" | wc -l) - echo "$exception $count" + local count + count=$(<"${JAVA_SOURCES_LIST}" xargs grep " \* @throws $exception$" |\ + wc -l) + echo "$exception $count"q done } @@ -113,7 +129,7 @@ show_affected() { fix_affected() { for exception in "${!SMACK_EXCEPTIONS[@]}"; do exceptionJavadoc=${SMACK_EXCEPTIONS[${exception}]} - sed_sources "s;@throws ((\w*\.)?${exception})\$;@throws \1 ${exceptionJavadoc};" + sed_sources "s;@throws ((\w*\.)?${exception}) ?\$;@throws \1 ${exceptionJavadoc};" done }