Files
dotfiles/bin/.local/bin/javar
2025-10-03 09:36:19 -04:00

63 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Usage: $0 [java-source]
prog_name=$(basename $0)
tool_version="beta"
year=2025
fatal() {
echo "fatal: $*" >&2
exit 1
}
run() {
"$@" || fatal "could not run: $*"
}
print_help() {
cat <<EOF
Usage: $prog_name [java-source]...
--help print this help and exit.
--version print version information.
--save-temps don't clean up all intermediate steps
EOF
}
print_version() {
cat <<EOF
$prog_name $tool_version $(git rev-list --count --all 2>/dev/null || echo 0)
Copyright (C) $year vx-clutch.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
EOF
}
clean=true
cleanup() {
local class=$1
$clean && rm $class.class
}
runner() {
local class=$1
class="${class%.java}"
run javac $class.java
run java $class
cleanup $class
}
while [ $# -gt 0 ]; do
case "$1" in
--help) print_help; exit 0 ;;
--version) print_version; exit 0 ;;
--save-temps) clean=false ;;
*)
runner $1
;;
esac
shift
done