Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- set -e
- if [ -z "$CF_BIN" ]; then CF_BIN=$(which cf); fi
- function construct_params_from_environment() {
- local serviceName="$1"
- local serviceNameVar=$(echo "$serviceName" | tr a-z A-Z)
- local jdbc_url=$(eval echo \$${serviceNameVar}_JDBC_URL)
- if [ -z "$jdbc_url" ]; then
- echo "${serviceNameVar}_JDBC_URL must be set to the $serviceName jdbc.url" >&2
- return 1
- fi
- local username=$(eval echo \$${serviceNameVar}_USERNAME)
- if [ -z "$username" ]; then
- echo "${serviceNameVar}_USERNAME must be set to the $serviceName username" >&2
- return 1
- fi
- local password=$(eval echo \$${serviceNameVar}_PASSWORD)
- if [ -z "$password" ]; then
- echo "${serviceNameVar}_PASSWORD must be set to the $serviceName password" >&2
- return 1
- fi
- params="{\"jdbc.url\":\"$jdbc_url\",\"username\":\"$username\",\"password\":\"$password\"}"
- echo "$params"
- }
- function log_into_cf() {
- if [ -z "$CF_API" ]; then
- echo "CF_API must be set to a Cloud Foundry API endpoint" >&2
- exit 1
- fi
- if [ -z "$CF_USERNAME" ]; then
- echo "CF_USERNAME must be set to a Cloud Foundry username" >&2
- exit 1
- fi
- if [ -z "$CF_PASSWORD" ]; then
- echo "CF_PASSWORD must be set to a Cloud Foundry password" >&2
- exit 1
- fi
- if [ -z "$CF_ORG" ]; then
- echo "CF_ORG must be set to a Cloud Foundry organization" >&2
- exit 1
- fi
- if [ -z "$CF_SPACE" ]; then
- echo "CF_SPACE must be set to a Cloud Foundry space" >&2
- exit 1
- fi
- # cf login [-a API_URL] [-u USERNAME] [-p PASSWORD] [-o ORG] [-s SPACE] [--sso | --sso-passcode PASSCODE]
- "$CF_BIN" login -a "$CF_API" -u "$CF_USERNAME" -p "$CF_PASSWORD" \
- -o "$CF_ORG" -s "$CF_SPACE"
- }
- function create_service() {
- local serviceName="$1"
- local parameters=$(construct_params_from_environment "$serviceName")
- if "$CF_BIN" services | grep "$serviceName"; then
- echo "$serviceName already exists, doing nothing"
- return 0
- fi
- echo "Configuring $serviceName secrets in $CF_ORG/$CF_SPACE."
- if "$CF_BIN" create-user-provided-service "$serviceName" -p "$parameters"; then
- echo "Created $serviceName successfully"
- else
- echo "Failed to create $serviceName" >&2
- return 1
- fi
- "$CF_BIN" cups "$serviceName" -p "$serviceSecrets"
- }
- # If we're executing this script, log in and create services
- if [ "$0" == "$BASH_SOURCE" ]; then
- log_into_cf
- create_service "$@"
- fi
Add Comment
Please, Sign In to add comment