rails_setup()
{
    PRJ_DIR=/home/rails-user/rails-projects
    PRJ_NAME=demo

    ip_addr=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
    secret_dev=$(</dev/urandom tr -dc '1234567890qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c128; echo "")
    secret_test=$(</dev/urandom tr -dc '1234567890qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c128; echo "")

    info "Setting RoR demo database password"
    db_pass=$(< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c28)
    sudo -u postgres psql -c "ALTER USER demo WITH PASSWORD '${db_pass}';"

    if [ $? != 0 ]; then
        error "ERROR: Failed to set PostgreSQL password..."
        exit 5
    fi
    info "Password for PostgreSQL successfully set"

    info "Configuring RoR app"
    sed '0,/password.*/s//password: '${db_pass}'/g' -i ${PRJ_DIR}/${PRJ_NAME}/config/database.yml
    cat > ${PRJ_DIR}/${PRJ_NAME}/config/secrets.yml <<EOL
development:
  secret_key_base: ${secret_dev}
test:
  secret_key_base: ${secret_test}
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
EOL

    info "Configuring Nginx RoR app"
    sed '0,/.*server_name.*/s//    server_name '${ip_addr}';/' -i /etc/nginx/sites-available/rails-demo

    info "Restarting services"
    systemctl stop unicorn-demo
    systemctl start unicorn-demo
    systemctl restart nginx
}

app_setup()
{
    rails_setup
    if [ $? != 0 ]; then
        error "ERROR: Failed to setup django..."
        exit 3
    fi
}
