Skip to content

Add a script to time execution steps #2527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Apr 7, 2021
53 changes: 53 additions & 0 deletions kore-exec-step.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

# USAGE: Pass the output of `krun --dry-run` to this script on the command line.

set_results() {
last_result="result-$(printf "%04d" $last).kore"
next_result="result-$(printf "%04d" $next).kore"
}
(( last = 0 ))
(( next = 1 ))
set_results

kore_exec_args=()
while [[ $# -gt 0 ]]
do
case "$1" in
--pattern)
pattern="$2"
shift
;;
--output)
shift
;;
--depth)
depth="$2"
shift
;;
*)
kore_exec_args+=("$1")
esac
shift
done

if [[ -z "$pattern" ]]
then
echo >&2 "Error: Missing --pattern FILENAME argument"
exit 1
fi
last_result="$pattern"
csv_file="$pattern.csv"

trap 'exit 1' SIGINT

while [[ -z "$depth" ]] || [[ "$last" -lt "$depth" ]]
do
command time -f '%S,%U,%M' -o "${csv_file:?}" -a -q \
kore-exec "${kore_exec_args[@]}" \
--pattern "${last_result:?}" --output "${next_result:?}" --depth 1
Comment on lines +46 to +48
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need the ?: 's in here but otherwise, it looks good

if diff "$last_result" "$next_result" >/dev/null; then break; fi
(( last = next ))
(( next += 1 ))
set_results
done