diff --git a/run.sh b/run.sh index 4ad27d8f8a0621bd8ac58b91f0de76878c807e73..e3e06bf8d52e91d3b003ccdbdef9f47d956144b6 100755 --- a/run.sh +++ b/run.sh @@ -1,4 +1,100 @@ #!/bin/bash -BASE_D=$(realpath "${BASH_SOURCE%/*}/") +# Default mode +mode="dev" +docker="false" -exec sudo docker run --rm -it -u $UID:$GID -p 127.0.0.1:8000:8000 -v "$BASE_D":/srv aura/pv /srv/manage.py runserver 0.0.0.0:8000 +# +# Run Script for AURA Steering +# +# Call with one of these parameters: +# +# - init +# - dev +# - prod +# - test + +# - docker:build +# - docker:push +# - docker:serve +# + +if [[ $* =~ ^(init|dev|prod|test|build|push|serve)$ ]]; then + mode=$1 +fi + +if [[ "$1" == *"docker:"* ]]; then + docker="true" + mode=${1#*:} +fi + + +echo "[ Run mode=$mode ]" +echo "[ Docker=$docker ]" + + + +# +++ DEFAULT COMMANDS +++ # + +if [[ $docker == "false" ]]; then + + ### Initializes the project (Development) ### + + if [[ $mode == "init" ]]; then + echo "Creating Python VirtualEnvironment" + virtualenv -p python3.6 python + echo "Install dependencies" + pip3 install -r requirements.txt + echo "Next you need to create the configuration, run fixtues, migrations and create a superuser." + fi + + ### Runs the project in development mode (Virtualenv) ### + + if [[ $mode == "dev" ]]; then + echo "Activating Python Environment" + source python/bin/activate + python manage.py runserver + fi + + ### Runs the project in production mode (Production) ### + + if [[ $mode == "prod" ]]; then + echo "!!! Not yet implemented !!!" + #gunicorn -c config/gunicorn.conf.py src.app:app + fi + + ### Runs the test-cases ### + + if [[ $mode == "test" ]]; then + echo "!!! Not yet implemented !!!" + fi + +fi + + +# +++ DOCKER COMMANDS +++ # + +if [[ $docker == "true" ]]; then + BASE_D=$(realpath "${BASH_SOURCE%/*}/") + + ### Runs Engine API using Gunicorn ### + + if [[ $mode == "serve" ]]; then + exec sudo docker run --rm -it \ + -u $UID:$GID \ + -p 127.0.0.1:8000:8000 \ + -v "$BASE_D":/srv autoradio/steering /srv/manage.py \ + runserver 0.0.0.0:8000 + fi + + ### Create Docker Image from local project ### + + if [[ $mode == "build" ]]; then + exec sudo docker build -t autoradio/steering . + fi + + ### Pushes the latest Docker Image to Docker Hub ### + + if [[ $mode == "push" ]]; then + exec sudo docker push autoradio/steering + fi +fi