Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- set -e
- POSTGRES_DB_HOST=${POSTGRES_DB_HOST:-$POSTGRES_PORT_5432_TCP_ADDR}
- POSTGRES_DB_PORT=${POSTGRES_DB_PORT:-$POSTGRES_PORT_5432_TCP_PORT}
- POSTGRES_DB_PORT=${POSTGRES_DB_PORT:-5432}
- POSTGRES_USER=${POSTGRES_USER:-dspace}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-dspace}
- POSTGRES_SCHEMA=${POSTGRES_SCHEMA:-dspace}
- POSTGRES_ADMIN_USER=${POSTGRES_ADMIN_USER:-postgres}
- POSTGRES_ADMIN_PASSWORD=${POSTGRES_ADMIN_PASSWORD}
- if [ -z $POSTGRES_DB_HOST -a -z $POSTGRES_DB_PORT ]; then
- echo "Please create a postgres container and link it to this one:"
- echo "> docker run -d --name dspace_db postgres"
- echo "> docker run --link dspace_db:postgres -p 8080:8080 unixelias/docker-dspace setup-postgres"
- exit 1
- fi
- DSPACE_CFG=/dspace/config/local.cfg
- if [ -n $POSTGRES_ADMIN_PASSWORD ]; then
- export PGPASSWORD=$POSTGRES_ADMIN_PASSWORD
- fi
- # Create database if not exists
- SCHEMA_EXISTS=$(psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -U "$POSTGRES_ADMIN_USER" -lqt | cut -d \| -f 1 | grep -qw "$POSTGRES_SCHEMA";echo $?)
- if [ $SCHEMA_EXISTS -eq 1 ]; then
- psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -d postgres -U "$POSTGRES_ADMIN_USER" -c "CREATE DATABASE $POSTGRES_SCHEMA;" 2>&1 > /dev/null
- echo "Database '${POSTGRES_SCHEMA}' created"
- fi
- # Install extension pgcrypto
- EXTENSION_EXISTS=$(psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -U "$POSTGRES_ADMIN_USER" -d dspace -c "SELECT extname FROM pg_extension" | cut -d \| -f 3 | grep "pgcrypto" 2>&1 > /dev/null;echo $?)
- if [ "$EXTENSION_EXISTS" -eq 1 ]; then
- psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -d dspace -U "$POSTGRES_ADMIN_USER" -c "CREATE EXTENSION pgcrypto;" 2>&1 > /dev/null
- echo "Extension 'pgcrypto' installed on '${POSTGRES_SCHEMA}' database"
- fi
- # Create user
- USER_EXISTS=$(psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -d postgres -U "$POSTGRES_ADMIN_USER" -c "SELECT 1 FROM pg_roles WHERE rolname='${POSTGRES_USER}';" | grep "1" 2>&1 > /dev/null; echo $?)
- if [ $USER_EXISTS -eq 1 ]; then
- psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -d postgres -U "$POSTGRES_ADMIN_USER" -c "CREATE USER $POSTGRES_USER WITH LOGIN PASSWORD '$POSTGRES_PASSWORD';" 2>&1 > /dev/null
- psql -h "$POSTGRES_DB_HOST" -p "$POSTGRES_DB_PORT" -d postgres -U "$POSTGRES_ADMIN_USER" -c "GRANT ALL PRIVILEGES ON DATABASE $POSTGRES_SCHEMA to $POSTGRES_USER;" 2>&1 > /dev/null
- echo "User '${POSTGRES_USER}' created"
- fi
- # Configure database in dspace.cfg
- sed -i "s#db.url = jdbc:postgresql://postgres:5432/dspace#db.url = jdbc:postgresql://${POSTGRES_DB_HOST}:${POSTGRES_DB_PORT}/${POSTGRES_SCHEMA}#" ${DSPACE_CFG}
- sed -i "s#db.username = dspace#db.username = ${POSTGRES_USER}#" ${DSPACE_CFG}
- sed -i "s#db.password = dspace#db.password = ${POSTGRES_PASSWORD}#" ${DSPACE_CFG}
- echo "Dspace configuration changed"
- # Create DSpace administrator
- # TODO - Marcelo custom - Não criar um administrador automaticamente
- #dspace create-administrator -e ${ADMIN_EMAIL:[email protected]} -f ${ADMIN_FIRSTNAME:-DSpace} -l ${ADMIN_LASTNAME:-Admin} -p ${ADMIN_PASSWD:-admin123} -c ${ADMIN_LANGUAGE:-en}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement