Files
java-core-examples/regex/scripts/run-all.sh
T

29 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Regenerates every file in ../output/. Requires JDK25_HOME.
set -euo pipefail
[[ -z "${JDK25_HOME:-}" ]] && { echo "JDK25_HOME must be set" >&2; exit 1; }
cd "$(dirname "$0")/.."
OUT=output; mkdir -p "$OUT"
export JAVA_HOME="$JDK25_HOME"
mvn -q -f ../pom.xml -pl regex -am package
J="$JDK25_HOME/bin/java"
run() { echo "==> $1"; "$J" -cp target/classes "com.ankurm.regex.$1" 2>&1 | grep -v "Picked up" > "$OUT/$2"; }
run BasicsDemo 01-basics.txt
run LookaroundDemo 02-lookarounds.txt
run ReplaceDemo 03-replace.txt
run BlowupDemo 04-blowup.txt
run FixesDemo 05-fixes.txt
run LimitsDemo 06-limits.txt
echo "==> JDK source: the backtracking mitigation and the absence of a timeout"
{
echo '$ java -version'; "$J" -version 2>&1 | grep -v "Picked up"
echo
echo '$ unzip -p lib/src.zip java.base/java/util/regex/Pattern.java | sed -n "/Optimize the greedy Loop/,/^ }$/p"'
unzip -p "$JDK25_HOME/lib/src.zip" java.base/java/util/regex/Pattern.java | sed -n '/Optimize the greedy Loop/,/^ }$/p'
echo
echo '$ grep -ci timeout Pattern.java Matcher.java'
for f in Pattern Matcher; do echo "$f.java: $(unzip -p "$JDK25_HOME/lib/src.zip" java.base/java/util/regex/$f.java | grep -ci timeout)"; done
} > "$OUT/07-jdk-source.txt"
cp target/surefire-reports/com.ankurm.regex.RegexClaimsTest.txt "$OUT/08-tests.txt"
echo Done