scripts/sql-dk.sh
author František Kučera <franta-hg@frantovo.cz>
Tue, 26 Feb 2019 18:19:49 +0100
branchv_0
changeset 236 a3ec71fa8e17
parent 199 88de2602deb3
child 253 d8442b266ca8
permissions -rwxr-xr-x
Avoid reusing/rewriting the DB connection properties. There was weird random errors while testing connection to multiple DB in parallel when one of them was meta connection to same DB connection. Two kinds of exception: 1) missing password 2) „Passing DB password as CLI parameter is insecure!“

#!/bin/bash

# include user-defined overrides and customization
if [ -f ~/.sql-dk/environment.sh ]; then # .sql-dk must match with DIR in Constants.java
	. ~/.sql-dk/environment.sh
else
	mkdir -p ~/.sql-dk/
	# link/copy support files for configuration:
	[ -f ~/.sql-dk/environment.sh ] || touch ~/.sql-dk/environment.sh
	[ -f ~/.sql-dk/config.xsd ] || ln -s /usr/share/doc/sql-dk/config.xsd ~/.sql-dk/config.xsd
	[ -f ~/.sql-dk/config.rnc ] || ln -s /usr/share/doc/sql-dk/config.rnc ~/.sql-dk/config.rnc
	[ -f ~/.sql-dk/config.xsl ] || gunzip < /usr/share/doc/sql-dk/config.xsl.gz > ~/.sql-dk/config.xsl # might not work in www browser if just symlinked
fi

# Standard JDBC drivers
[ -n "$STANDARD_JDBC" ] || STANDARD_JDBC=(
	"/usr/share/java/postgresql-jdbc4.jar"
	"/usr/share/java/mysql.jar"
);

# Additional JDBC drivers might be specified in CUSTOM_JDBC array
# Plugins (formatters etc.) might be specified in PLUGINS array

# JAR containing SQL-DK application
[ -n "$JAR" ] || JAR="/usr/share/sql-dk/sql-dk.jar";

CLASS_PATH="$JAR";

for e in "${STANDARD_JDBC[@]}" "${CUSTOM_JDBC[@]}" "${PLUGINS[@]}"; do
	CLASS_PATH="$CLASS_PATH:$e";
done


MAIN_CLASS="info.globalcode.sql.dk.CLIStarter";

LOGGER="-Djava.util.logging.config.class=info.globalcode.sql.dk.logging.LoggerInitializer";
[ -n "$LOG_LEVEL" ] && LOGGER_LEVEL="-Dinfo.globalcode.sql.dk.logging.LoggerInitializer.level=$LOG_LEVEL";

java "${JAVA_OPTIONS[@]}" $LOGGER $LOGGER_LEVEL -cp "$CLASS_PATH" $MAIN_CLASS "$@"