#!/bin/sh set -euo pipefail usage() { cat <<-'EOF' Usage: transactor [-p PORT] FILE EOF } PORT=50200 while getopts 'p:' flag; do case "$flag" in (p) PORT="$OPTARG" ;; (*) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) if [ -z "${1:-}" ]; then echo 'Missing FILE.' >&2 usage >&2 exit 2 fi FILE="$1" sqlite3 "$FILE" < @SYSCONFDIR@/init.sql > /dev/null exec java \ -server \ -Djava.security.manager=allow \ -Xms4g \ -Xmx4g \ -XX:+UseG1GC \ -XX:MaxGCPauseMillis=50 \ --class-path '@SYSCONFDIR@/:@JAVADIR@/*' \ clojure.main \ --main datomic.launcher \ <( sed \ -e "s|@PORT@|$PORT|g" \ -e "s|@FILE@|$FILE|g" \ @SYSCONFDIR@/transactor.properties.tmpl )