Module: Mxrb::Compiler::PortableFallbackAssets

Defined in:
lib/mxrb/compiler/portable_packager.rb

Overview

Portable assets used by Runtime distributions that do not ship PAD.

Constant Summary collapse

START =
<<~'SH'
  #!/bin/sh
  set -eu

  ROOT_PATH=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
  if [ -n "${JAVA_HOME:-}" ] && [ -x "$JAVA_HOME/bin/java" ]; then
    JAVA="$JAVA_HOME/bin/java"
  else
    JAVA=$(command -v java || true)
  fi
  if [ -z "$JAVA" ] || [ ! -x "$JAVA" ]; then
    echo "Cannot find java; set JAVA_HOME or add java to PATH." >&2
    exit 1
  fi

  if [ -z "${M2EE_ADMIN_PASS:-}" ]; then
    M2EE_ADMIN_PASS=$(od -An -N16 -tx1 /dev/urandom | tr -d ' \n')
    export M2EE_ADMIN_PASS
  fi
  RUNTIME_ADMINUSER_PASSWORD="${RUNTIME_ADMINUSER_PASSWORD:-$M2EE_ADMIN_PASS}"
  export RUNTIME_ADMINUSER_PASSWORD

  export MX_INSTALL_PATH="$ROOT_PATH/lib"
  CONFIG="${CONFIG:-$ROOT_PATH/etc/Default}"
  if [ "$#" -eq 0 ]; then
    set -- "$CONFIG"
  fi
  cd "$ROOT_PATH"
  exec "$JAVA" ${JAVA_OPTS:-} \
    -Dfile.encoding=UTF-8 \
    -Djava.io.tmpdir="${TMPDIR:-/tmp}" \
    -Djava.library.path="$MX_INSTALL_PATH/runtime/lib/x64;$ROOT_PATH/app/model/lib/userlib" \
    -jar "$MX_INSTALL_PATH/runtime/launcher/runtimelauncher.jar" \
    "$ROOT_PATH/app/." "$@"
SH
VARIABLES =
<<~CONF
  admin {
    port = ${?ADMIN_PORT}
    addresses = ${?ADMIN_ADDRESSES}
    adminPassword = ${?M2EE_ADMIN_PASS}
  }
  runtime.http {
    port = ${?RUNTIME_HTTP_PORT}
    addresses = ${?RUNTIME_HTTP_ADDRESSES}
  }
  runtime.params {
    DatabaseHost = ${?RUNTIME_PARAMS_DATABASEHOST}
    DatabaseJdbcUrl = ${?RUNTIME_PARAMS_DATABASEJDBCURL}
    DatabaseName = ${?RUNTIME_PARAMS_DATABASENAME}
    DatabaseUserName = ${?RUNTIME_PARAMS_DATABASEUSERNAME}
    DatabasePassword = ${?RUNTIME_PARAMS_DATABASEPASSWORD}
    DatabaseType = ${?RUNTIME_PARAMS_DATABASETYPE}
    DatabaseUseSsl = ${?RUNTIME_PARAMS_DATABASEUSESSL}
    ApplicationRootUrl = ${?RUNTIME_PARAMS_APPLICATIONROOTURL}
  }
  runtime.adminUser.password = ${?RUNTIME_ADMINUSER_PASSWORD}
CONF
EXAMPLE =
<<~CONF
  # Copy this file and pass its path to bin/start to override etc/Default.
  runtime.params { DatabaseType = HSQLDB, DatabaseName = default }
  admin { port = 8090, addresses = [ localhost ] }
  runtime.http { port = 8080, addresses = [ "*" ] }
CONF