From a529a59e2965f6fff78ddfdf313da20a71a0fb68 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 12 Dec 2022 20:37:51 +0100 Subject: [PATCH] Rewrite the flake to use poetry2nix.dependencyEnv --- flake.nix | 89 ++++++++++++++++---------------------------------- poetry.lock | 2 +- pyproject.toml | 1 + 3 files changed, 30 insertions(+), 62 deletions(-) diff --git a/flake.nix b/flake.nix index 38a357c..dd16819 100644 --- a/flake.nix +++ b/flake.nix @@ -13,16 +13,17 @@ { overlays.default = nixpkgs.lib.composeManyExtensions [ poetry2nix.overlay - (final: prev: { + (final: prev: rec { inventoryDevEnv = prev.poetry2nix.mkPoetryEnv { projectDir = ./.; groups = [ "main" "dev" ]; }; - inventoryEnv = prev.poetry2nix.mkPoetryEnv { + inventoryPackage = prev.poetry2nix.mkPoetryApplication { projectDir = ./.; groups = [ "main" ]; }; + inventoryEnv = inventoryPackage.dependencyEnv; }) ]; } // (flake-utils.lib.eachDefaultSystem (system: @@ -31,41 +32,8 @@ inherit system; overlays = [ self.overlays.default ]; }; - src = with pkgs.lib; - cleanSource (cleanSourceWith { - filter = name: type: - let - baseName = baseNameOf (toString name); - in - !(builtins.elem baseName [ - ".coverage" - ".coveragerc" - ".dir-locals.el" - ".direnv" - ".git" - ".github" - ".env" - ".envrc" - ".flake8" - ".gitignore" - ".gitlab-ci.yml" - "conftest.py" - "docker-compose.yaml" - "flake.lock" - "flake.nix" - "Makefile" - "poetry.lock" - "poetry.toml" - "pyproject.toml" - "pytest.ini" - "__pycache__" - "*.pyc" - "tests" - ]); - src = ./.; - }); inventory = pkgs.stdenv.mkDerivation { - inherit src; + src = ./.; version = "latest"; pname = "network-inventory"; installPhase = '' @@ -131,37 +99,36 @@ paths = [ pkgs.bashInteractive pkgs.coreutils - pkgs.inventoryEnv inventory (pkgs.writeShellScriptBin "start-inventory" '' if [ -f .second_run ]; then sleep 2 - ${pkgs.python3}/bin/python manage.py collectstatic --noinput - ${pkgs.python3}/bin/python manage.py makemigrations - ${pkgs.python3}/bin/python manage.py migrate + ${pkgs.inventoryEnv}/bin/django-admin collectstatic --noinput + ${pkgs.inventoryEnv}/bin/django-admin makemigrations + ${pkgs.inventoryEnv}/bin/django-admin migrate else - ${pkgs.python3}/bin/python manage.py collectstatic --noinput - ${pkgs.python3}/bin/python manage.py makemigrations backups - ${pkgs.python3}/bin/python manage.py makemigrations computers - ${pkgs.python3}/bin/python manage.py makemigrations core - ${pkgs.python3}/bin/python manage.py makemigrations customers - ${pkgs.python3}/bin/python manage.py makemigrations devices - ${pkgs.python3}/bin/python manage.py makemigrations licenses - ${pkgs.python3}/bin/python manage.py makemigrations nets - ${pkgs.python3}/bin/python manage.py makemigrations softwares - ${pkgs.python3}/bin/python manage.py makemigrations users - ${pkgs.python3}/bin/python manage.py makemigrations - ${pkgs.python3}/bin/python manage.py migrate - ${pkgs.python3}/bin/python manage.py loaddata backups - ${pkgs.python3}/bin/python manage.py loaddata computers - ${pkgs.python3}/bin/python manage.py loaddata core - ${pkgs.python3}/bin/python manage.py loaddata devices - ${pkgs.python3}/bin/python manage.py loaddata nets - ${pkgs.python3}/bin/python manage.py loaddata softwares - ${pkgs.python3}/bin/python manage.py shell -c "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('admin', 'admin@example.com', 'password')" + ${pkgs.inventoryEnv}/bin/django-admin collectstatic --noinput + ${pkgs.inventoryEnv}/bin/django-admin makemigrations backups + ${pkgs.inventoryEnv}/bin/django-admin makemigrations computers + ${pkgs.inventoryEnv}/bin/django-admin makemigrations core + ${pkgs.inventoryEnv}/bin/django-admin makemigrations customers + ${pkgs.inventoryEnv}/bin/django-admin makemigrations devices + ${pkgs.inventoryEnv}/bin/django-admin makemigrations licenses + ${pkgs.inventoryEnv}/bin/django-admin makemigrations nets + ${pkgs.inventoryEnv}/bin/django-admin makemigrations softwares + ${pkgs.inventoryEnv}/bin/django-admin makemigrations users + ${pkgs.inventoryEnv}/bin/django-admin makemigrations + ${pkgs.inventoryEnv}/bin/django-admin migrate + ${pkgs.inventoryEnv}/bin/django-admin loaddata backups + ${pkgs.inventoryEnv}/bin/django-admin loaddata computers + ${pkgs.inventoryEnv}/bin/django-admin loaddata core + ${pkgs.inventoryEnv}/bin/django-admin loaddata devices + ${pkgs.inventoryEnv}/bin/django-admin loaddata nets + ${pkgs.inventoryEnv}/bin/django-admin loaddata softwares + ${pkgs.inventoryEnv}/bin/django-admin shell -c "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('admin', 'admin@example.com', 'password')" touch .second_run fi - ${pkgs.python310Packages.gunicorn}/bin/gunicorn network_inventory.wsgi:application --reload --bind 0.0.0.0:8000 --workers 3 + ${pkgs.inventoryEnv}/bin/gunicorn network_inventory.wsgi:application --reload --bind 0.0.0.0:8000 --workers 3 '') ]; }; @@ -171,7 +138,7 @@ Env = [ "POSTGRES_DB=network_inventory" "DJANGO_SETTINGS_MODULE=network_inventory.settings.production" - "PYTHONPATH=/lib/python3.10:/lib/python3.10/site-packages" + "PYTHONPATH=/lib/python3.10:/lib/python3.10/site-packages:/code" ]; }; }; diff --git a/poetry.lock b/poetry.lock index b343988..0027f0a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -722,7 +722,7 @@ python-versions = "*" [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "497467f8cce845c8f08bbbdc259f9faaf212af95639356eff39ad0240a0f22b6" +content-hash = "6c310d4f7398036e0ce6ab320014b9aa2bf4b7dc187503ae2b4962995b3eab3b" [metadata.files] appdirs = [ diff --git a/pyproject.toml b/pyproject.toml index d55b223..9783787 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ django-htmx = "^1.13.0" django-model-utils = "^4.2.0" django-nested-admin = "^4.0.2" django-tables2 = "^2.4.1" +gunicorn = "^20.1.0" psycopg2-binary = "^2.9.5" PyYAML = "^6.0"