49 lines
1.3 KiB
Plaintext
49 lines
1.3 KiB
Plaintext
use flake
|
|
eval "$shellHook"
|
|
layout_postgres() {
|
|
export PGDATA="$(direnv_layout_dir)/postgres"
|
|
export PGHOST="$PGDATA"
|
|
if [[ ! -d "$PGDATA" ]]; then
|
|
initdb
|
|
echo -e "listen_addresses = 'localhost'\nunix_socket_directories = '$PGHOST'" >>"$PGDATA/postgresql.conf"
|
|
echo "CREATE DATABASE django;" | postgres --single -E postgres
|
|
fi
|
|
}
|
|
layout postgres
|
|
|
|
layout_poetry() {
|
|
PYPROJECT_TOML="${PYPROJECT_TOML:-pyproject.toml}"
|
|
if [[ ! -f "$PYPROJECT_TOML" ]]; then
|
|
log_status "No pyproject.toml found. Executing \`poetry init\` to create a \`$PYPROJECT_TOML\` first."
|
|
poetry init
|
|
fi
|
|
|
|
if [[ -d ".venv" ]]; then
|
|
VIRTUAL_ENV="$(pwd)/.venv"
|
|
else
|
|
VIRTUAL_ENV=$(
|
|
poetry env info --path 2>/dev/null
|
|
true
|
|
)
|
|
fi
|
|
|
|
if [[ -z $VIRTUAL_ENV || ! -d $VIRTUAL_ENV ]]; then
|
|
log_status "No virtual environment exists. Executing \`poetry install\` to create one."
|
|
poetry install
|
|
VIRTUAL_ENV=$(poetry env info --path)
|
|
fi
|
|
|
|
PATH_add "$VIRTUAL_ENV/bin"
|
|
export POETRY_ACTIVE=1
|
|
export VIRTUAL_ENV
|
|
}
|
|
|
|
if ! has nix; then
|
|
layout poetry
|
|
fi
|
|
|
|
export PROJECT_DIR=$(pwd)
|
|
export WEBPORT=$(($RANDOM + 1100))
|
|
export PGPORT=$(($WEBPORT + 100))
|
|
watch_file "$PGDATA/postgresql.conf"
|