58 lines
1.4 KiB
Nix
58 lines
1.4 KiB
Nix
|
{
|
||
|
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;
|
||
|
dontUnpack = true;
|
||
|
buildPhase = ''
|
||
|
mkdir -p $out;
|
||
|
cp -r ${self}/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 = {
|
||
|
simple =
|
||
|
runCommand "e11sync-test" {
|
||
|
src = self;
|
||
|
buildInputs = [
|
||
|
python3Packages.django_5
|
||
|
python3Packages.django-compressor
|
||
|
python3Packages.geoip2
|
||
|
libmaxminddb
|
||
|
dart-sass
|
||
|
];
|
||
|
} ''
|
||
|
mkdir -p $out
|
||
|
cd ${self}/app
|
||
|
export GEOIP_PATH="${geoip-archive}"
|
||
|
${python3}/bin/python3 ./manage.py test
|
||
|
'';
|
||
|
};
|
||
|
}
|