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"