babashka/script/uberjar
Nik f06a749249
Add support for SQLite via a BABASHKA_FEATURE_SQLITE feature flag (#1079)
* implement native sqlite support as a feature flag following [1]

([1] is mentioned as a checklist of sorts as to how to add a new 
feature flag in [2])

[1] 13f65f05ae
[2] https://github.com/babashka/babashka/blob/master/doc/build.md

* bump to latest sqlite-jdbc, remove some no longer needed config+libs

based on feedback from borkdude here [1], bump xerial/sqlite-jdbc
3.36.0.3, which includes the graalvm classes and resource config
previously implemented via ericdallo/sqlite-jni-graal-fix and a `-H`
flag in `script/compile`

[1]: https://github.com/babashka/babashka/pull/1079#issuecomment-980533178
2021-11-28 09:34:54 +01:00

169 lines
4.3 KiB
Bash
Executable file

#!/usr/bin/env bash
if [ "$GRAALVM_HOME" != "" ]
then
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
fi
java -version
set -eo pipefail
if [ "$BABASHKA_LEAN" = "true" ]
then
# Remove all the default features, unless explicitly set to true:
export BABASHKA_FEATURE_XML="${BABASHKA_FEATURE_XML:-false}"
export BABASHKA_FEATURE_YAML="${BABASHKA_FEATURE_YAML:-false}"
export BABASHKA_FEATURE_CSV="${BABASHKA_FEATURE_CSV:-false}"
export BABAHSKA_FEATURE_TRANSIT="${BABAHSKA_FEATURE_TRANSIT:-false}"
export BABASHKA_FEATURE_JAVA_TIME="${BABASHKA_FEATURE_JAVA_TIME:-false}"
export BABASHKA_FEATURE_JAVA_NET_HTTP="${BABASHKA_FEATURE_JAVA_NET_HTTP:-false}"
export BABASHKA_FEATURE_JAVA_NIO="${BABASHKA_FEATURE_JAVA_NIO:-false}"
export BABASHKA_FEATURE_HTTPKIT_CLIENT="${BABASHKA_FEATURE_HTTPKIT_CLIENT:-false}"
export BABASHKA_FEATURE_HTTPKIT_SERVER="${BABASHKA_FEATURE_HTTPKIT_SERVER:-false}"
export BABASHKA_FEATURE_CORE_MATCH="${BABASHKA_FEATURE_CORE_MATCH:-false}"
export BABASHKA_FEATURE_LOGGING="${BABASHKA_FEATURE_LOGGING:-false}"
fi
BABASHKA_LEIN_PROFILES="+uberjar"
if [ "$BABASHKA_FEATURE_JDBC" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/jdbc"
else
BABASHKA_LEIN_PROFILES+=",-feature/jdbc"
fi
if [ "$BABASHKA_FEATURE_SQLITE" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/sqlite"
else
BABASHKA_LEIN_PROFILES+=",-feature/sqlite"
fi
if [ "$BABASHKA_FEATURE_POSTGRESQL" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/postgresql"
else
BABASHKA_LEIN_PROFILES+=",-feature/postgresql"
fi
if [ "$BABASHKA_FEATURE_HSQLDB" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/hsqldb"
else
BABASHKA_LEIN_PROFILES+=",-feature/hsqldb"
fi
if [ "$BABASHKA_FEATURE_ORACLEDB" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/oracledb"
else
BABASHKA_LEIN_PROFILES+=",-feature/oracledb"
fi
if [ "$BABASHKA_FEATURE_XML" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/xml"
else
BABASHKA_LEIN_PROFILES+=",-feature/xml"
fi
if [ "$BABASHKA_FEATURE_YAML" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/yaml"
else
BABASHKA_LEIN_PROFILES+=",-feature/yaml"
fi
if [ "$BABASHKA_FEATURE_CSV" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/csv"
else
BABASHKA_LEIN_PROFILES+=",-feature/csv"
fi
if [ "$BABASHKA_FEATURE_TRANSIT" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/transit"
else
BABASHKA_LEIN_PROFILES+=",-feature/transit"
fi
if [ "$BABASHKA_FEATURE_DATASCRIPT" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/datascript"
else
BABASHKA_LEIN_PROFILES+=",-feature/datascript"
fi
if [ "$BABASHKA_FEATURE_HTTPKIT_CLIENT" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/httpkit-client"
else
BABASHKA_LEIN_PROFILES+=",-feature/httpkit-client"
fi
if [ "$BABASHKA_FEATURE_HTTPKIT_SERVER" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/httpkit-server"
else
BABASHKA_LEIN_PROFILES+=",-feature/httpkit-server"
fi
if [ "$BABASHKA_FEATURE_LANTERNA" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/lanterna"
else
BABASHKA_LEIN_PROFILES+=",-feature/lanterna"
fi
if [ "$BABASHKA_FEATURE_CORE_MATCH" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/core-match"
else
BABASHKA_LEIN_PROFILES+=",-feature/core-match"
fi
if [ "$BABASHKA_FEATURE_HICCUP" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/hiccup"
else
BABASHKA_LEIN_PROFILES+=",-feature/hiccup"
fi
if [ "$BABASHKA_FEATURE_TEST_CHECK" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/test-check"
else
BABASHKA_LEIN_PROFILES+=",-feature/test-check"
fi
if [ "$BABASHKA_FEATURE_SPEC_ALPHA" = "true" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/spec-alpha"
else
BABASHKA_LEIN_PROFILES+=",-feature/spec-alpha"
fi
if [ "$BABASHKA_FEATURE_SELMER" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/selmer"
else
BABASHKA_LEIN_PROFILES+=",-feature/selmer"
fi
if [ "$BABASHKA_FEATURE_LOGGING" != "false" ]
then
BABASHKA_LEIN_PROFILES+=",+feature/logging"
else
BABASHKA_LEIN_PROFILES+=",-feature/logging"
fi
cp deps.edn resources/META-INF/babashka/deps.edn
if [ -z "$BABASHKA_JAR" ]; then
lein with-profiles "$BABASHKA_LEIN_PROFILES,+reflection,-uberjar" do run
lein with-profiles "$BABASHKA_LEIN_PROFILES" do clean, uberjar
fi