2015-11-02 10:33:08 +08:00
|
|
|
#!/bin/bash
|
2016-09-21 06:35:50 +08:00
|
|
|
SCRIPTPATH=$(cd "$(dirname "$0")"; pwd -P)
|
|
|
|
SOURCE_DIR=$(cd "$SCRIPTPATH" && cd ../.. && pwd -P)
|
|
|
|
DATA_DIR=$SOURCE_DIR/tmp/postgres
|
2015-11-02 10:33:08 +08:00
|
|
|
|
2016-09-21 06:35:50 +08:00
|
|
|
show_help() {
|
|
|
|
cat <<EOF
|
2016-12-12 14:39:20 +08:00
|
|
|
Usage: ${0##*/} [-h] [--init]
|
2015-11-02 10:33:08 +08:00
|
|
|
|
2016-09-21 06:35:50 +08:00
|
|
|
--init perform first-time initialization
|
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
|
|
|
initialize=""
|
|
|
|
|
|
|
|
while [ "${#@}" -ne "0" ]; do
|
|
|
|
case "$1" in
|
|
|
|
-h | --help)
|
|
|
|
show_help
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
-i | --init)
|
|
|
|
initialize="initialize"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "unexpected argument: $1" >& 2
|
|
|
|
show_help >& 2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "Using source in: ${SOURCE_DIR}"
|
|
|
|
echo "Using data in: ${DATA_DIR}"
|
|
|
|
|
|
|
|
mkdir -p "${DATA_DIR}"
|
|
|
|
|
2016-12-13 06:05:45 +08:00
|
|
|
docker run -d -p 1080:1080 -p 3000:3000 -v $DATA_DIR:/shared/postgres_data -v $SOURCE_DIR:/src --hostname=discourse --name=discourse_dev --restart=always discourse/discourse_dev:latest /sbin/boot
|
2016-09-21 06:35:50 +08:00
|
|
|
|
|
|
|
if [ "${initialize}" = "initialize" ]; then
|
|
|
|
echo "Installing gems..."
|
|
|
|
${SCRIPTPATH}/bundle install
|
|
|
|
|
|
|
|
echo "Migrating database..."
|
|
|
|
${SCRIPTPATH}/rake db:migrate
|
2016-12-12 14:47:24 +08:00
|
|
|
RAILS_ENV=test ${SCRIPTPATH}/rake db:migrate
|
2015-11-02 10:33:08 +08:00
|
|
|
|
2016-09-21 06:35:50 +08:00
|
|
|
echo "Creating admin user..."
|
|
|
|
${SCRIPTPATH}/rake admin:create
|
|
|
|
fi
|