|
@@ -16,10 +16,27 @@ if ! whoami &> /dev/null; then
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
+# DATABASE_URL takes the highest precedence.
|
|
|
+if [[ -n "$DATABASE_URL" ]]; then
|
|
|
+ case "${DATABASE_URL%%://*}" in
|
|
|
+ mysql)
|
|
|
+ DATABASE_ADAPTER=mysql2 ;;
|
|
|
+ postgres)
|
|
|
+ DATABASE_ADAPTER=postgresql ;;
|
|
|
+ *)
|
|
|
+ DATABASE_ADAPTER="${DATABASE_URL%%://*}" ;;
|
|
|
+ esac
|
|
|
+ eval "$(ruby -ruri -rshellwords -e 'u = URI(ARGV[0]); {
|
|
|
+ HOST: u.hostname,
|
|
|
+ PORT: u.port,
|
|
|
+ USERNAME: u.user,
|
|
|
+ PASSWORD: u.password,
|
|
|
+ NAME: u.path[%r{[^/]+}]
|
|
|
+ }.each {|k,v| puts "HUGINN_DATABASE_#{k}=#{v.to_s.shellescape}" }' "$DATABASE_URL")"
|
|
|
# is a mysql or postgresql database linked?
|
|
|
# requires that the mysql or postgresql containers have exposed
|
|
|
# port 3306 and 5432 respectively.
|
|
|
-if [[ -n "${MYSQL_PORT_3306_TCP_ADDR}" || ("${DATABASE_ADAPTER}" == "mysql2" && -n "${DATABASE_HOST}") ]]; then
|
|
|
+elif [[ -n "${MYSQL_PORT_3306_TCP_ADDR}" || ("${DATABASE_ADAPTER}" == "mysql2" && -n "${DATABASE_HOST}") ]]; then
|
|
|
DATABASE_ADAPTER=${DATABASE_ADAPTER:-mysql2}
|
|
|
DATABASE_HOST=${DATABASE_HOST:-${MYSQL_PORT_3306_TCP_ADDR}}
|
|
|
DATABASE_PORT=${DATABASE_PORT:-${MYSQL_PORT_3306_TCP_PORT:-3306}}
|
|
@@ -37,6 +54,7 @@ USE_GRAPHVIZ_DOT=${HUGINN_USE_GRAPHVIZ_DOT:-${USE_GRAPHVIZ_DOT:-dot}}
|
|
|
DATABASE_HOST=${HUGINN_DATABASE_HOST:-${DATABASE_HOST:-localhost}}
|
|
|
DATABASE_PORT=${HUGINN_DATABASE_PORT:-${DATABASE_PORT}}
|
|
|
DATABASE_ENCODING=${HUGINN_DATABASE_ENCODING:-${DATABASE_ENCODING}}
|
|
|
+DATABASE_USERNAME=${HUGINN_DATABASE_USERNAME:-${DATABASE_USERNAME}}
|
|
|
DATABASE_PASSWORD=${HUGINN_DATABASE_PASSWORD:-${DATABASE_PASSWORD:-password}}
|
|
|
DATABASE_NAME=${HUGINN_DATABASE_NAME:-${DATABASE_NAME:-huginn_production}}
|
|
|
RAILS_ENV=${HUGINN_RAILS_ENV:-${RAILS_ENV:-production}}
|