#!/bin/bash set -e host=$(relation-get host) port=$(relation-get port) connection_security=$(relation-get connection-security) auth_method=$(relation-get auth-method) ## We are creating a URL that looks like this: ## smtp://[login:password@]host:port/?ignoreTLS=true&secure=false ## ref: https://nodemailer.com/smtp/ opts=() declare -A ENV case "$connection_security" in "none") url+="smtp://" opts+=( "ignoreTLS=true" "secure=false" ) ;; "ssl/tls") url+="smtps://" ;; *) error "Unsupported connection security: $connection_security" exit 1 ;; esac case "$auth_method" in "none") : ;; "password") login=$(relation-get login) || true password=$(relation-get password) || true url+="$login:${password//\$/\$\$}@" ;; *) error "Unsupported auth method: $auth_method" exit 1 ;; esac url+="$host:$port/" first=1 for opt in "${opts[@]}"; do if [ $first -eq 1 ]; then url+="?" first=0 else url+="&" fi url+="$opt" done config-add "\ services: $MASTER_BASE_SERVICE_NAME: environment: PDS_EMAIL_SMTP_URL: \"$url\" "