From f348ff8e9becc3480c1e2c37e744c304767b8103 Mon Sep 17 00:00:00 2001 From: Chenxiong Qi Date: Jan 05 2018 07:59:50 +0000 Subject: Refactor utility scripts This patches introduces a new script `manager` and move the functionalities of create_sqlite_db, start_freshmaker_from_here and start_frontend_from_here to this new script. During development, we need to set PYTHONPATH and `FRESHMAKER_DEVELOPER_ENV` to run commands from `freshmaker/manage.py`, the removed scripts only sets those two variables for limited commands, not all. New script `manager` fixes this. That is useful for me particularly to run commands related to database migrations as an example. Script manager accepts argument either help, -h, or --help to print usage. Command `createdb` maps to `create_sqlite_db`, `runfrontend` maps to `start_frontend_from_here`, and `runfreshmaker` maps to `start_freshmaker_from_here`. In addition, all commands `freshmaker/manage.py` accepts are usable as well, for example `manager db revision --help`. Signed-off-by: Chenxiong Qi --- diff --git a/create_sqlite_db b/create_sqlite_db deleted file mode 100755 index b803a2f..0000000 --- a/create_sqlite_db +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -PYTHONPATH=. FRESHMAKER_DEVELOPER_ENV=1 python freshmaker/manage.py upgradedb -PYTHONPATH=. FRESHMAKER_DEVELOPER_ENV=1 python freshmaker/manage.py db migrate diff --git a/manager b/manager new file mode 100755 index 0000000..95676c9 --- /dev/null +++ b/manager @@ -0,0 +1,51 @@ +#!/bin/bash + +project_root="$(dirname "$(realpath $0)")" + +export PYTHONPATH="${project_root}" +export FRESHMAKER_DEVELOPER_ENV=1 + +manage_py="python "${project_root}/freshmaker/manage.py"" + +function usage +{ + echo "Commands:" + echo " createdb Create database" + echo " runfrontend Run frontend API webapp" + echo " runfreshmaker Run backend service and frontend API webapp together" +} + +case $1 in + help | -h | --help) + usage + echo + echo "Following commands from manage.py are usable as well." + echo + $manage_py --help + ;; + createdb) + $manage_py upgradedb + $manage_py db migrate + ;; + + runfrontend) + $manage_py runssl + ;; + + runfreshmaker) + "${project_root}/start_backend_from_here" & + PIDS[0]=$! + + trap "kill ${PIDS[*]}" SIGINT + + if ! $manage_py runssl; then + wait + fi + ;; + + *) + $manage_py "$@" +esac + + +# vim:sw=4 diff --git a/start_freshmaker_from_here b/start_freshmaker_from_here deleted file mode 100755 index ab2e6e6..0000000 --- a/start_freshmaker_from_here +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -export PYTHONPATH=. -export FRESHMAKER_DEVELOPER_ENV=1 - -./start_backend_from_here & -PIDS[0]=$! - -trap "kill ${PIDS[*]}" SIGINT - -./start_frontend_from_here -if (($? != 0)); then - wait -fi diff --git a/start_frontend_from_here b/start_frontend_from_here deleted file mode 100755 index f960008..0000000 --- a/start_frontend_from_here +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -PYTHON_PATH=. FRESHMAKER_DEVELOPER_ENV=1 python freshmaker/manage.py runssl