You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
2.5 KiB

12 months ago
#!/usr/bin/env bash
HERE="$(cd "$(dirname "$0")" && pwd)"
BASEDIR="$(cd "$(dirname "$1")" && pwd)"
CHARS="abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)"
for ((i=0;i<${#CHARS};i++)); do ARRAY[$i]="${CHARS:i:1}"; done
MSG_SUCCESS="DONE!"
POETRY=0
PYTHON=0
key_gen() {
for ((c=1; c<=50; c++)); do
KEY="$KEY${ARRAY[$((RANDOM % 50))]}"
done
echo $KEY
}
make_env_file() {
if [[ ! -f ".env" ]]; then
ENV="SECRET_KEY='$(key_gen)'\n
ALLOWED_HOSTS=localhost, 10.0.2.2, 127.0.0.1\n
DEBUG=True\n\n
#DATABASE_URL=postgres://postgres:postgres@127.0.0.1:5433/db\n\n
ADMIN_USERNAME=\n
ADMIN_EMAIL=\n
ADMIN_PASSWORD=\n\n
EMAIL_HOST=\n
EMAIL_PORT=\n
EMAIL_HOST_USER=\n
EMAIL_HOST_PASSWORD=\n
EMAIL_USE_TLS=True\n
DEFAULT_FROM_EMAIL=
"
$(echo -e $ENV | sed -e 's/^[ \t]*//' > .env)
echo "ENV FILE - $MSG_SUCCESS"
fi
}
verify_poetry() {
if command -v poetry &> /dev/null; then
POETRY=1
fi
}
verify_python() {
if command -v python3 &> /dev/null; then
PYTHON=1
fi
}
venv_name() {
if [[ -d "$BASEDIR/.venv" ]]; then
echo ".venv"
fi
if [[ -d "$BASEDIR/venv" ]]; then
echo "venv"
fi
}
python_name() {
if [[ PYTHON -eq 1 ]]; then
echo "python3"
else
echo "python"
fi
}
help() {
awk 'BEGIN {FS="## @ "; print "Usage: make";} /^## @ / { printf "\033[31m\n" substr($1, 5) "\n";} {FS=" ## ";} /^[a-zA-Z_-]+:.*? ##/ { print "\033[33m -", $1 "\033[37m", $2}' $ARG
}
run() {
$(venv_name)/bin/$(python_name) manage.py runserver 0.0.0.0:8000
}
shell_plus() {
$(venv_name)/bin/$(python_name) manage.py shell_plus
}
check() {
$(venv_name)/bin/$(python_name) manage.py check
IS_OK=$?
}
show_migrations() {
$(venv_name)/bin/$(python_name) manage.py showmigrations
}
migrations() {
$(venv_name)/bin/$(python_name) manage.py makemigrations
}
migrate() {
$(venv_name)/bin/$(python_name) manage.py migrate
}
check() {
$(venv_name)/bin/$(python_name) manage.py check
}
elements() {
$(venv_name)/bin/$(python_name) manage.py elements
}
clear_migrations() {
find $BASEDIR -path '*/migrations/*.py' -not -name '__init__.py' -not -path '*/.venv/*' -delete
find $BASEDIR -path '*/migrations/*.pyc' -not -name '__init__.py' -not -path '*/.venv/*' -delete
if [[ -f $BASEDIR/media/ ]]; then
rm $BASEDIR/media/*
fi
if [[ -f db.sqlite3 ]];then
rm db.sqlite3
fi
}
verify_python
verify_poetry
ARG=$2
$1