{ self, stdenv, runCommand, makeWrapper, python3, python3Packages, libmaxminddb, dart-sass, gunicornPort ? 8001, 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} \ --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" { buildInputs = [ python3Packages.django_5 python3Packages.django-compressor python3Packages.geoip2 dart-sass ]; } '' mkdir -p $out cd ${self}/app export GEOIP_PATH="${geoip-archive}" ${python3}/bin/python3 ./manage.py test ''; }; }