chore: Add scripts for setting up development environment

This commit is contained in:
ChronosX88 2019-10-12 11:55:44 +04:00
parent 020563605a
commit a547a2e209
Signed by: ChronosXYZ
GPG Key ID: 085A69A82C8C511A
2 changed files with 96 additions and 0 deletions

82
devzone/devzone.sh Executable file
View File

@ -0,0 +1,82 @@
#!/usr/bin/env bash
# Actually this isn't needed as we extract script path later and use it
# for everything, but anyway!
if [ "$0" != "./devzone.sh" ]; then
echo "This script should be launched as './devzone.sh'!"
exit 1
fi
# Check for OS first. On macOS greadlink should be used instead of
# readlink.
READLINK="/bin/readlink"
OS=$(uname -s)
if [ "${OS}" == "Darwin" ]; then
READLINK="/usr/local/bin/greadlink"
if [ ! -f "${READLINK}" ]; then
echo "GNU readlink is required for macOS. Please, install coreutils with brew."
exit 1
fi
fi
SCRIPT_PATH=$(dirname "`${READLINK} -f "${BASH_SOURCE}"`")
echo "devzone script path: ${SCRIPT_PATH}"
# This values might or might not be filled by OS.
# And it MUST NOT be filled on macOS. Docker is so convenient...
if [ "${OS}" != "Darwin" ]; then
USER_ID=$(id -u)
GROUP_ID=$(id -g)
else
echo "macOS users have no need in setting user and group ID"
fi
clear_postgresql() {
echo "Clearing PostgreSQL..."
for dir in `ls ${SCRIPT_PATH}/postgresql/data`; do
echo -e "\t${SCRIPT_PATH}/postgresql/data/${dir}"
rm -rf ${SCRIPT_PATH}/postgresql/data/${dir}/*
done
}
down() {
echo "Cleaning up development environment..."
docker-compose down --remove-orphans
clear_postgresql
}
run() {
echo "Getting development environment up and running with docker-compose..."
# ToDo: checks?
USER_ID=$USER_ID GROUP_ID=$GROUP_ID docker-compose up
if [ $? -ne 0 ]; then
echo "Something went wrong. Read previous messages carefully!"
exit 1
fi
echo "Development zone shutted down."
}
help() {
echo "Developers helper script."
echo ""
echo "Available subcommands:"
echo -e "\tclear_postgresql\t\tClears PostgreSQL persistent data directories from data."
echo -e "\tdown\t\t\t\tClear development environment from data."
echo -e "\trun\t\t\t\tStart development zone required servers (databases, etc.)."
}
case $1 in
clear_postgresql)
clear_postgresql
;;
down)
down
;;
run)
run
;;
*)
help
;;
esac

View File

@ -0,0 +1,14 @@
version: "2.4"
services:
postgresql:
image: "postgres:11.5"
ports:
- "15432:5432"
volumes:
- "./postgresql/data:/var/lib/postgresql/data"
environment:
POSTGRES_USER: cadmium
POSTGRES_PASSWORD: cadmium
POSTGRES_DB: cadmium
user: ${USER_ID}