{ lib, stdenv, runCommand, makeWrapper, python3Packages, libmaxminddb, dart-sass, gunicornPort ? 8001, database-path ? null, geoip-mmdb, }: stdenv.mkDerivation { name = "e11sync"; propagatedBuildInputs = [ python3Packages.django_5 python3Packages.django-compressor python3Packages.geoip2 libmaxminddb ]; nativeBuildInputs = [makeWrapper]; src = ../app; patchPhase = ''patchShebangs --build manage.py''; buildPhase = ''mkdir -p $out''; installPhase = '' cp -r . $out/app makeWrapper ${python3Packages.gunicorn}/bin/gunicorn $out/bin/e11sync-gunicorn \ --chdir $out/app \ --set-default E11SYNC_HTTP_PORT ${toString gunicornPort} \ ${lib.optionalString (database-path != null) '' --set E11SYNC_DATABASE_PATH "${database-path}" \ ''} \ --set E11SYNC_DEBUG "" \ --set E11SYNC_COMPRESS_OFFLINE 1 \ --set GEOIP_PATH "${geoip-mmdb}" \ --add-flags --bind=127.0.0.1:\$E11SYNC_HTTP_PORT \ --add-flags e11sync.wsgi makeWrapper $out/app/manage.py $out/bin/e11sync \ --set GEOIP_PATH "${geoip-mmdb}" ''; passthru.tests.unit = runCommand "e11sync-test" { src = ../app; buildInputs = [ python3Packages.django_5 python3Packages.django-compressor python3Packages.geoip2 dart-sass ]; } '' unpackPhase patchShebangs --build app/manage.py export GEOIP_PATH="${geoip-mmdb}" app/manage.py test app mkdir -p $out ''; }