@@ -45,7 +45,7 @@ SCRIPT_DIR="$(cd "$(dirname "${SCRIPT}")" && pwd)" | |||||
BUBBLE_DIR="$(cd "${SCRIPT_DIR}"/.. && pwd)" | BUBBLE_DIR="$(cd "${SCRIPT_DIR}"/.. && pwd)" | ||||
MODE=${1:?no mode specified, use build or run} | |||||
MODE=${1:?no mode specified, use: build, run, term, push or clean} | |||||
META_FILE="${BUBBLE_DIR}/bubble-server/src/main/resources/META-INF/bubble/bubble.properties" | META_FILE="${BUBBLE_DIR}/bubble-server/src/main/resources/META-INF/bubble/bubble.properties" | ||||
VERSION="${2:-$(cat "${META_FILE}" | grep bubble.version | awk -F '=' '{print $2}' | awk -F ' ' '{print $NF}' | awk '{$1=$1};1')}" | VERSION="${2:-$(cat "${META_FILE}" | grep bubble.version | awk -F '=' '{print $2}' | awk -F ' ' '{print $NF}' | awk '{$1=$1};1')}" | ||||
@@ -87,13 +87,18 @@ if [[ "${MODE}" == "build" ]] ; then | |||||
elif [[ "${MODE}" == "run" ]] ; then | elif [[ "${MODE}" == "run" ]] ; then | ||||
# Copy existing env if found | # Copy existing env if found | ||||
ENV_FILE=$(mktemp /tmp/.bubble.env.XXXXXXX) | ENV_FILE=$(mktemp /tmp/.bubble.env.XXXXXXX) | ||||
if [[ -z "${BUBBLE_ENV}" ]] ; then | |||||
BUBBLE_ENV="${HOME}/.bubble.env" | |||||
fi | |||||
if [[ -f "${BUBBLE_ENV}" ]] ; then | if [[ -f "${BUBBLE_ENV}" ]] ; then | ||||
cat "${BUBBLE_ENV}" > "${ENV_FILE}" | cat "${BUBBLE_ENV}" > "${ENV_FILE}" | ||||
fi | fi | ||||
# Define API port | # Define API port | ||||
echo " | echo " | ||||
export BUBBLE_SERVER_PORT=${BUBBLE_PORT}" >> "${ENV_FILE}" | |||||
export BUBBLE_SERVER_PORT=${BUBBLE_PORT} | |||||
export PUBLIC_BASE_URI=http://127.0.0.1:${BUBBLE_PORT} | |||||
" >> "${ENV_FILE}" | |||||
# Define LetsEncrypt email, from env var or stdin | # Define LetsEncrypt email, from env var or stdin | ||||
if [[ $(cat "${BUBBLE_ENV}" | grep -v '^#' | grep -c LETSENCRYPT_EMAIL) -eq 0 ]] ; then | if [[ $(cat "${BUBBLE_ENV}" | grep -v '^#' | grep -c LETSENCRYPT_EMAIL) -eq 0 ]] ; then | ||||
@@ -12,9 +12,12 @@ | |||||
if [[ -n "${BUBBLE_SERVER_PORT}" ]] ; then | if [[ -n "${BUBBLE_SERVER_PORT}" ]] ; then | ||||
echo "export BUBBLE_SERVER_PORT=${BUBBLE_SERVER_PORT}" >> /bubble/bubble.env | echo "export BUBBLE_SERVER_PORT=${BUBBLE_SERVER_PORT}" >> /bubble/bubble.env | ||||
echo "export BUBBLE_W00T=w00t" >> /bubble/bubble.env | |||||
else | |||||
echo "export BUBBLE_LAME0=l4m3" >> /bubble/bubble.env | |||||
fi | |||||
if [[ -n "${LETSENCRYPT_EMAIL}" ]] ; then | |||||
echo "export LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}" >> /bubble/bubble.env | |||||
fi | |||||
if [[ -n "${PUBLIC_BASE_URI}" ]] ; then | |||||
echo "export PUBLIC_BASE_URI=${PUBLIC_BASE_URI}" >> /bubble/bubble.env | |||||
fi | fi | ||||
exec /usr/bin/java \ | exec /usr/bin/java \ | ||||
@@ -27,6 +27,12 @@ fi | |||||
if [[ -n "${BUBBLE_SERVER_PORT}" ]] ; then | if [[ -n "${BUBBLE_SERVER_PORT}" ]] ; then | ||||
echo "export BUBBLE_SERVER_PORT=${BUBBLE_SERVER_PORT}" >> /bubble/bubble.env | echo "export BUBBLE_SERVER_PORT=${BUBBLE_SERVER_PORT}" >> /bubble/bubble.env | ||||
fi | fi | ||||
if [[ -n "${LETSENCRYPT_EMAIL}" ]] ; then | |||||
echo "export LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}" >> /bubble/bubble.env | |||||
fi | |||||
if [[ -n "${PUBLIC_BASE_URI}" ]] ; then | |||||
echo "export PUBLIC_BASE_URI=${PUBLIC_BASE_URI}" >> /bubble/bubble.env | |||||
fi | |||||
exec /usr/bin/java \ | exec /usr/bin/java \ | ||||
-Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Dbubble.listenAll=true \ | -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Dbubble.listenAll=true \ | ||||
@@ -161,9 +161,10 @@ function run_launcher() { | |||||
die "'uname -s' returned empty string!" | die "'uname -s' returned empty string!" | ||||
fi | fi | ||||
if [[ -z "$(which docker)" ]]; then | |||||
DOCKER="$(which docker)" | |||||
if [[ -z "${DOCKER}" ]]; then | |||||
setup_docker | setup_docker | ||||
if [[ -z "$(which docker)" ]]; then | |||||
if [[ -z "${DOCKER}" ]]; then | |||||
die "***** Error installing docker | die "***** Error installing docker | ||||
Install docker manually from https://docs.docker.com/engine/install/ | Install docker manually from https://docs.docker.com/engine/install/ | ||||
Then re-run this script. | Then re-run this script. | ||||
@@ -182,11 +183,11 @@ Then re-run this script. | |||||
# Pull bubble docker image | # Pull bubble docker image | ||||
if [[ "${CALLER}" == "root" ]] ; then | if [[ "${CALLER}" == "root" ]] ; then | ||||
docker pull "${DOCKER_TAG}" || die "Error pulling docker image: ${DOCKER_TAG}" | |||||
${DOCKER} pull "${DOCKER_TAG}" || die "Error pulling docker image: ${DOCKER_TAG}" | |||||
else | else | ||||
docker pull "${DOCKER_TAG}" || \ | |||||
echo "***** error running 'docker pull' as ${CALLER}, trying via sudo ..." && \ | |||||
sudo su - "${CALLER}" -c "docker pull ${DOCKER_TAG}" || die "Error pulling docker image: ${DOCKER_TAG}" | |||||
${DOCKER} pull "${DOCKER_TAG}" || \ | |||||
echo "***** error running '${DOCKER} pull' as ${CALLER}, trying via sudo ..." && \ | |||||
sudo su - "${CALLER}" -c "${DOCKER} pull ${DOCKER_TAG}" || die "Error pulling docker image: ${DOCKER_TAG}" | |||||
fi | fi | ||||
# Determine email for LetsEncrypt certs | # Determine email for LetsEncrypt certs | ||||
@@ -206,28 +207,25 @@ Then re-run this script. | |||||
# Run bubble docker image | # Run bubble docker image | ||||
if [[ "${CALLER}" == "root" ]] ; then | if [[ "${CALLER}" == "root" ]] ; then | ||||
docker run ${EXPOSE} \ | |||||
run ${EXPOSE} \ | |||||
-p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | -p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | ||||
-e LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL}" \ | -e LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL}" \ | ||||
-e BUBBLE_PORT=${BUBBLE_PORT} \ | |||||
-e BUBBLE_SERVER_PORT=${BUBBLE_PORT} \ | |||||
-e PUBLIC_BASE_URI=http://127.0.0.1:${BUBBLE_PORT} \ | |||||
-t "${DOCKER_TAG}" | -t "${DOCKER_TAG}" | ||||
else | else | ||||
echo "docker run ${EXPOSE} \ | |||||
-p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | |||||
-e LETSENCRYPT_EMAIL=\"${LETSENCRYPT_EMAIL}\" \ | |||||
-e BUBBLE_PORT=${BUBBLE_PORT} \ | |||||
-t \"${DOCKER_TAG}\"" && exit 0 | |||||
docker run ${EXPOSE} \ | |||||
${DOCKER} run ${EXPOSE} \ | |||||
-p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | -p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | ||||
-e LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL}" \ | -e LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL}" \ | ||||
-e BUBBLE_PORT=${BUBBLE_PORT} \ | |||||
-e BUBBLE_SERVER_PORT=${BUBBLE_PORT} \ | |||||
-e PUBLIC_BASE_URI=http://127.0.0.1:${BUBBLE_PORT} \ | |||||
-t "${DOCKER_TAG}" || \ | -t "${DOCKER_TAG}" || \ | ||||
echo "***** error running 'docker run' as ${CALLER}, trying via sudo ..." && \ | |||||
sudo su - "${CALLER}" -c "docker run ${EXPOSE} \ | |||||
echo "***** error running '${DOCKER} run' as ${CALLER}, trying via sudo ..." && \ | |||||
sudo su - "${CALLER}" -c "${DOCKER} run ${EXPOSE} \ | |||||
-p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | -p ${BUBBLE_PORT}:${BUBBLE_PORT} \ | ||||
-e BUBBLE_PORT=${BUBBLE_PORT} \ | |||||
-e BUBBLE_SERVER_PORT=${BUBBLE_PORT} \ | |||||
-e LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} \ | -e LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} \ | ||||
-e PUBLIC_BASE_URI=http://127.0.0.1:${BUBBLE_PORT} \ | |||||
-t ${DOCKER_TAG}" | -t ${DOCKER_TAG}" | ||||
fi | fi | ||||
} | } | ||||
@@ -1 +1 @@ | |||||
Subproject commit 2b5c7f6e424e5b686454af3bfeeb796314500145 | |||||
Subproject commit 9792c0ac6d6a7cfde87c65a109cc239ab196f1f9 |