{ self, lib, stdenv, runCommand, makeWrapper, python3Packages, libmaxminddb, dart-sass, gunicornPort ? 8001, database-path ? null, geoip-archive, }: stdenv.mkDerivation { name = "e11sync"; propagatedBuildInputs = [ python3Packages.django_5 python3Packages.django-compressor python3Packages.geoip2 libmaxminddb ]; nativeBuildInputs = [makeWrapper]; src = self; patchPhase = ''patchShebangs --build app/manage.py''; buildPhase = ''mkdir -p $out''; installPhase = '' cp -r app $out 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-archive}" \ --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-archive}" ''; passthru.tests.unit = runCommand "e11sync-test" { src = self; buildInputs = [ python3Packages.django_5 python3Packages.django-compressor python3Packages.geoip2 dart-sass ]; } '' unpackPhase patchShebangs --build $sourceRoot/app/manage.py cd $sourceRoot export GEOIP_PATH="${geoip-archive}" app/manage.py test app mkdir -p $out ''; }