From 87036747653846cced97df0171b4a1fd072da800 Mon Sep 17 00:00:00 2001
From: Gunnar Morling <gunnar.morling@googlemail.com>
Date: Fri, 5 Jan 2024 15:26:18 +0100
Subject: [PATCH] Eval infra

---
 prepare_evaluation.sh => cleanup.sh | 11 ++++-----
 eval.sh                             | 24 +++++++++++++++++++
 prepare.sh                          | 36 +++++++++++++++++++++++++++++
 process.sh                          | 24 +++++++++++++++++++
 4 files changed, 89 insertions(+), 6 deletions(-)
 rename prepare_evaluation.sh => cleanup.sh (81%)
 create mode 100755 eval.sh
 create mode 100755 prepare.sh
 create mode 100755 process.sh

diff --git a/prepare_evaluation.sh b/cleanup.sh
similarity index 81%
rename from prepare_evaluation.sh
rename to cleanup.sh
index 250279f..6727907 100755
--- a/prepare_evaluation.sh
+++ b/cleanup.sh
@@ -17,12 +17,11 @@
 
 if [ -z "$1" ]
   then
-    echo "Usage: prepare_evaluation.sh <fork name>"
+    echo "Usage: cleanup.sh <fork name>"
     exit 1
 fi
 
-
-git checkout -b $1
-
-git pull https://github.com/$1/1brc.git
-# git pull git@github.com:$1/1brc.git
+git checkout .
+git checkout main
+git branch -D $1
+git pull upstream main
diff --git a/eval.sh b/eval.sh
new file mode 100755
index 0000000..460591f
--- /dev/null
+++ b/eval.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+#  Copyright 2023 The original authors
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+
+if [ -z "$1" ]
+  then
+    echo "Usage: eval.sh <fork name>"
+    exit 1
+fi
+
+./evaluate.sh $1 2>&1 | tee $1.out
diff --git a/prepare.sh b/prepare.sh
new file mode 100755
index 0000000..a541134
--- /dev/null
+++ b/prepare.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+#  Copyright 2023 The original authors
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+
+set -x
+
+if [ -z "$1" ]
+  then
+    echo "Usage: prepare.sh <fork name>:<branch name>"
+    exit 1
+fi
+
+parts=(${1//:/ })
+echo "  User: ${parts[0]}"
+echo "Branch: ${parts[1]}"
+
+git branch -D ${parts[0]} &>/dev/null
+
+git checkout -b ${parts[0]}
+git fetch https://github.com/${parts[0]}/1brc.git ${parts[1]}
+# git fetch git@github.com:${parts[0]}/1brc.git ${parts[1]}
+git reset --hard FETCH_HEAD
+git rebase main
diff --git a/process.sh b/process.sh
new file mode 100755
index 0000000..7d759f3
--- /dev/null
+++ b/process.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+#  Copyright 2023 The original authors
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+
+if [ -z "$1" ]
+  then
+    echo "Usage: process_output.sh <fork name>"
+    exit 1
+fi
+
+java --enable-preview --source=21 process_output.java out_expected.txt $1.out