Charm: precise/drupal6   Revision: 2   Hook: db-relation-changed
#!/bin/bash
set -eu

hostname=`unit-get public-address`

drupal_install_path="/var/www/drupal"
config_file_path="$drupal_install_path/sites/default/settings.php"

database=`relation-get database`
user=`relation-get user`
password=`relation-get password`
host=`relation-get private-address`

if [ -z "$database" ] ; then
    exit 0
fi

# not used just yet, future enhancement
secret_key=`pwgen 10 1`
source "/usr/share/charm-helper/sh/net.sh"


juju-log "Writing Drupal config file $config_file_path"
# Write the Drupal config
cat > $config_file_path <<EOF
<?php
\$obstart = function ()
{
  if (extension_loaded('gzip')) {
    if (!ob_start('ob_gzhandler')) {
      ob_start();
    }
  } else {
    ob_start();
  }
};

if (!defined('DRUPAL_ROOT')) {
  define('DRUPAL_ROOT', getcwd());
}

global \$conf, \$db_url, \$drupal_db, \$cookie_domain, \$update_free_access, \$db_prefix;
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

\$update_free_access = false;
\$cookie_domain = \$_SERVER['HTTP_HOST'];
\$conf['pressflow_smart_start'] = true;

ini_set('zend.enable_gc', 0);
ini_set('display_errors', 0);
ini_set('timezone.default', 'UTC');
ini_set('date.timezone', 'UTC');
ini_set('realpath_cache_size', '64m');
ini_set('realpath_cache_ttl', '1800');
ini_set('arg_separator.output', '&amp;');
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
ini_set('session.cache_expire', 200000);
ini_set('session.cache_limiter', 'none');
ini_set('session.cookie_lifetime', 2000000);
ini_set('session.gc_maxlifetime', 200000);
ini_set('session.save_handler', 'user');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
ini_set('url_rewriter.tags', '');

//\$conf['cache_inc'] = 'sites/all/modules/contrib/cache_backport/cache.inc';
//\$conf['cache_backends'] = array('sites/all/modules/contrib/apc/drupal_apc_cache.inc');
//\$conf['cache_default_class'] = 'DrupalAPCCache';
//\$conf['page_cache_without_database'] = TRUE;
//\$conf['page_cache_invoke_hooks'] = FALSE;

\$drupal_db = array(
    'type' => 'mysql',
    'server' => '$host',
    'name' => '$database',
    'user' => '$user',
    'pass' => '$password',
    'prefix' => 'pf_',
);

\$db_url = \$drupal_db['type'] . '://' . \$drupal_db['user'] . ':' . \$drupal_db['pass'] . '@' . \$drupal_db['server'] . '/' . \$drupal_db['name'];
\$db_prefix = \$drupal_db['prefix'];

//include_once(DRUPAL_ROOT . '/sites/default/bootstrap.inc.php');

EOF
chmod 0644 $config_file_path

juju-log "Enabling Nginx on $hostname"

chown -R www-data.www-data $drupal_install_path

# Restart nginx
juju-log "Restarting web service"
service php5-fpm restart
service nginx restart
open-port 80/tcp
open-port 8080/tcp

pub=`unit-get public-address`
juju-log "Drupal site is now available on $pub"