Skip to content
Snippets Groups Projects
bootstrap.sh 1.43 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env bash
    
    set -ex
    
    substitute_values() {
        cat << EOF > ./valuesForSubstitution.json
    {
    "<DATA_PARTITION_ID>": "${DATA_PARTITION_ID}",
    "<PARTITION_POSTGRESQL_DB_NAME>": "${PARTITION_POSTGRESQL_DB_NAME}",
    "<PARTITION_POSTGRESQL_USERNAME>": "${PARTITION_POSTGRESQL_USERNAME}",
    "<PARTITION_POSTGRESQL_PASSWORD>": "${PARTITION_POSTGRESQL_PASSWORD}"
    }
    EOF
    
        # shellcheck disable=SC2207
        KEYS=( $(jq -r 'keys_unsorted[]' ./valuesForSubstitution.json) )
        # shellcheck disable=SC2207
        VALUES=( $(jq -r 'values[]' ./valuesForSubstitution.json) )
    
        for i in "${!KEYS[@]}"; do
        find ./ -type f -exec sed -i -e "s/${KEYS[$i]}/${VALUES[$i]}/g" {} \;
        done
    
    }
    
    execute_sql_scripts() {
        export PGPASSWORD=${POSTGRESQL_PASSWORD}
    
        psql -h "${POSTGRESQL_HOST}" -U "${POSTGRESQL_USERNAME}" -p "${POSTGRESQL_PORT}" -f "./bootstrap.sql"
    }
    
    # General connection variables
    source ./validate-env.sh "DATA_PARTITION_ID"
    
    # Service users and passwords
    source ./validate-env.sh "PARTITION_POSTGRESQL_DB_NAME"
    source ./validate-env.sh "PARTITION_POSTGRESQL_USERNAME"
    source ./validate-env.sh "PARTITION_POSTGRESQL_PASSWORD"
    source ./validate-env.sh "POSTGRESQL_HOST"
    source ./validate-env.sh "POSTGRESQL_PORT"
    source ./validate-env.sh "POSTGRESQL_USERNAME"
    source ./validate-env.sh "POSTGRESQL_PASSWORD"
    source ./validate-env.sh "POSTGRESQL_DATABASE"
    substitute_values
    execute_sql_scripts
    touch /tmp/bootstrap_ready
    # sleeping if success
    sleep 365d