Files
openfoodnetwork/script/setup
Pau Perez 14480b920e Fix script/setup by making it less clever
Now we ask the dev to create the "ofn" user as precondition. This is
way easier than developing a script that fits all possible setups.

It also stops requiring a particlar Postgres version. Although in
production we use 9.5 it is very unlikely we will use any
version-specific feature in the near future. This should make it a bit
easier for new devs to set up their environment.
2018-07-23 10:59:32 +02:00

66 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env sh
# Set up Rails app. Run this script immediately after cloning the codebase.
#
# First, you need to create the database user the app will use by manually
# typing the following in your terminal:
#
# $ sudo -u postgres psql -c "CREATE USER ofn WITH SUPERUSER CREATEDB PASSWORD 'f00d'"
#
# This will create the "ofn" user as superuser and allowing it to create
# databases.
# Exit if any command fails
set -e
YELLOW='\033[0;33m'
RED='\033[0;31m'
NO_COLOR='\033[0m'
RUBY_VERSION=$(cat .ruby-version)
NODE_VERSION=$(cat .node-version)
# Check ruby version
if ! ruby --version | grep $RUBY_VERSION > /dev/null; then
printf "${RED}Open Food Network requires ruby ${RUBY_VERSION}${NO_COLOR}. Have a look at: https://github.com/rbenv/rbenv\n"
exit 1
fi
# Check node version
if ! node --version | grep $NODE_VERSION > /dev/null; then
printf "${RED}Open Food Network requires node ${NODE_VERSION}${NO_COLOR}. Have a look at: https://github.com/nodenv/nodenv\n"
fi
# Set up Ruby dependencies via Bundler
if ! command -v bundle > /dev/null; then
gem install bundler
fi
# Install all dependencies
bundle check || bundle install
npm install
# Set up configurable environment variables
if [ ! -f config/application.yml ]; then
cp config/application.yml.example config/application.yml
printf "${YELLOW}Copied config/application.yml Make sure to fill it with the appropriate configuration values.\n\n${NO_COLOR}"
fi
# Set up the database for both development and test
# Confirming the default user and password Spree prompts
printf '\n\n' | bundle exec rake db:setup db:test:prepare
printf '\n'
# Load some default data for your environment
bundle exec rake openfoodnetwork:dev:load_sample_data
printf '\n'
printf "${YELLOW}WELCOME TO OPEN FOOD NETWORK!\n"
printf '\n'
printf "To login as the Spree default user, use:"
printf '\n'
printf '\n'
printf ' email: spree@example.com\n'
printf " password: spree123\n${NO_COLOR}"