oshipka/oshipka.sh

73 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
if [ -v $OSHIPKA_PATH ]; then
echo "You need to specify OSHIPKA_PATH env variable"
exit 1
fi
echo "oshipka is at: $OSHIPKA_PATH"
#!/usr/bin/env bash
HELP="
Usage $0 [ bootstrap | worker | web ]
bootstrap [PROJECT_PATH] Create a new project in PROJECT_PATH
worker Start worker
web Start webapp
"
worker () {
celery worker --app=tasks.worker.worker_app --concurrency=1 --loglevel=INFO
}
web () {
python run.py
}
bootstrap() {
shift
PROJECT_PATH=$1
if [[ -z "$PROJECT_PATH" ]]; then
read -p "Enter project path: " PROJECT_PATH
fi
if [[ -z "$PROJECT_PATH" ]]; then
echo "ERROR: Specify project path"
exit 1
else
echo "INFO: Project path: $PROJECT_PATH"
PROJECT_PATH=`realpath $PROJECT_PATH`
echo "INFO: Absolute project path: $PROJECT_PATH"
if [[ "$PROJECT_PATH" == $OSHIPKA_PATH* ]]; then
echo "ERROR: Project path can't be inside this directory. Exiting..."
exit 1
fi
if [ -d $PROJECT_PATH ]; then
echo "ERROR: Project path exists. Please remove or specify another. Exiting..."
exit 1
else
echo "INFO: Project path doesn't exist, creating..."
mkdir -p $PROJECT_PATH
fi
fi
PROJECT_NAME=$(basename $PROJECT_PATH)
echo "INFO: Bootstrapping project $PROJECT_NAME..."
mkdir -p ${PROJECT_PATH}
cp -r ${OSHIPKA_PATH}/bootstrap/* ${PROJECT_PATH}/
}
command_main() {
INITIAL_COMMAND=$1
case "$INITIAL_COMMAND" in
bootstrap) bootstrap "$@"
;;
worker) worker "$@"
;;
web) web "$@"
;;
*) >&2 echo -e "${HELP}"
return 1
;;
esac
return $?
}
command_main "$@"