forked from 0k/0k-charms
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.9 KiB
76 lines
1.9 KiB
#!/bin/bash
|
|
|
|
## Should be executable N time in a row with same result.
|
|
|
|
. lib/common
|
|
|
|
set -e
|
|
|
|
DOMAIN=$(relation-get domain)
|
|
DATA_DIRS=$(relation-get data_dirs 2>/dev/null | shyaml get-values 2>/dev/null) || true
|
|
LOCATION=$(relation-get location 2>/dev/null) || true
|
|
CREDS=$(relation-get creds 2>/dev/null) || true
|
|
SERVER_ALIAS=$(relation-get server-alias 2>/dev/null) || true
|
|
|
|
export SERVER_ALIAS
|
|
|
|
if SSL_CERT_LOCATION=$(relation-get ssl-cert-file 2>/dev/null); then
|
|
SSL_CERT=/etc/ssl/certs/${DOMAIN}.pem
|
|
config-add "\
|
|
$MASTER_BASE_CHARM_NAME:
|
|
volumes:
|
|
- ${SSL_CERT_LOCATION}:${SSL_CERT}
|
|
"
|
|
fi
|
|
|
|
if SSL_KEY_LOCATION=$(relation-get ssl-key-file 2>/dev/null); then
|
|
SSL_KEY=/etc/ssl/private/${DOMAIN}.key
|
|
config-add "\
|
|
$MASTER_BASE_CHARM_NAME:
|
|
volumes:
|
|
- ${SSL_KEY_LOCATION}:${SSL_KEY}
|
|
"
|
|
fi
|
|
|
|
if SSL_CA_CERT_LOCATION=$(relation-get ssl-ca-cert-file 2>/dev/null); then
|
|
SSL_CA_CERT=/etc/ssl/cert/${DOMAIN}-ca.pem
|
|
config-add "\
|
|
$MASTER_BASE_CHARM_NAME:
|
|
volumes:
|
|
- ${SSL_CA_CERT_LOCATION}:${SSL_CA_CERT}
|
|
"
|
|
fi
|
|
|
|
export CREDS
|
|
apache_ssl_add "$DOMAIN"
|
|
|
|
if [ "$LOCATION" ]; then
|
|
if [ -d "$LOCATION" -a ! -d "$LOCATION/.git" ]; then
|
|
err "Hum, location '$LOCATION' does not seem to be a git directory."
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -d "$LOCATION/.git" ]; then
|
|
BRANCH=$(relation-get branch)
|
|
BRANCH=${BRANCH:-master}
|
|
|
|
SOURCE=$(relation-get source)
|
|
parent="$(dirname "$LOCATION")"
|
|
(
|
|
mkdir -p "$parent" && cd "$parent"
|
|
git clone -b "$BRANCH" "$SOURCE" "$(basename "$LOCATION")"
|
|
)
|
|
fi
|
|
apache_code_dir "$DOMAIN" "$LOCATION"
|
|
else
|
|
mkdir -p "$SERVICE_DATASTORE/var/www/${DOMAIN}" || return 1
|
|
config-add "
|
|
$MASTER_BASE_CHARM_NAME:
|
|
volumes:
|
|
- $DATASTORE/$BASE_CHARM_NAME/var/www/${DOMAIN}:/var/www/${DOMAIN}
|
|
"
|
|
fi
|
|
|
|
if [ "$DATA_DIRS" ]; then
|
|
apache_data_dir "$DOMAIN" "$DATA_DIRS"
|
|
fi
|