#!/bin/bash set -eu # -x for verbose logging to juju debug-log umask 002 install_root=`config-get install_root` app_name=`config-get app_name` app_dir="$install_root/$app_name" app_user=`config-get app_user` app_scm=`config-get app_scm` app_url=`config-get app_url` app_branch=`config-get app_branch` app_port=`config-get app_port` apt-get -y install -qq git-core install_node() { juju-log "Installing node..." add-apt-repository ppa:chris-lea/node.js apt-get update apt-get -y install -qq nodejs build-essential curl } [[ -x /usr/bin/node ]] || install_node install_app() { juju-log "Installing ${app_name}..." git clone ${app_url} ${app_dir} -b ${app_branch} chown -Rf ${app_user}.${app_user} ${app_dir} if [ -f ${app_dir}/package.json ]; then cd ${app_dir} && npm install fi # If Procfile found, use it with foreman module if [ -f ${app_dir}/Procfile ]; then npm install -g foreman else cat > /etc/init/${app_name}.conf <> /var/log/${app_name}.log 2>&1 & exec /usr/bin/node ${app_dir}/server.js >> /var/log/${app_name}.log 2>&1 & end script EOS fi } [[ -d ${app_dir} ]] || install_app juju-log "Delaying app startup until mongodb joins" #juju-log "starting app" #service ${app_name} restart || service ${app_name} start