commit 513b2cf00db7f6ac58a9ec1a3bcbdc989834c4cc (tree)
parent 287d0fe9ba062f680a5559167d6af115cecc090c
Author: Motiejus Jakštys <motiejus@jakstys.lt>
Date: Sun, 28 Jan 2024 16:42:17 +0200
split out e11sync-djangostatic from e11sync-static
Diffstat:
6 files changed, 64 insertions(+), 45 deletions(-)
diff --git a/app/signup/migrations/0001_initial.py b/app/signup/migrations/0001_initial.py
@@ -1,3 +1,4 @@
+# flake8: noqa
# Generated by Django 5.0.1 on 2024-01-12 10:04
from django.db import migrations, models
diff --git a/flake.nix b/flake.nix
@@ -44,7 +44,13 @@
};
in {
packages = {
- inherit (pkgs) e11sync-static e11sync-caddyfile e11sync-backend;
+ inherit
+ (pkgs)
+ e11sync-static
+ e11sync-djangostatic
+ e11sync-caddyfile
+ e11sync-backend
+ ;
};
checks = {
diff --git a/overlay.nix b/overlay.nix
@@ -13,6 +13,7 @@ in {
inherit geoip2-tarball;
};
e11sync-static = withDjango5.callPackage ./pkgs/e11sync-static.nix {};
+ e11sync-djangostatic = withDjango5.callPackage ./pkgs/e11sync-djangostatic.nix {};
e11sync-caddyfile = withDjango5.callPackage ./pkgs/e11sync-caddyfile.nix {};
e11sync-backend = withDjango5.callPackage ./pkgs/e11sync-backend.nix {};
})
diff --git a/pkgs/e11sync-backend.nix b/pkgs/e11sync-backend.nix
@@ -9,7 +9,7 @@
backendPort ? 8002,
databasePath ? null,
geoip-mmdb,
- e11sync-static,
+ e11sync-djangostatic,
}: let
uwsgi-python = uwsgi.override {plugins = ["python3"];};
pythonEnv = python3.withPackages (ps: [ps.django ps.geoip2]);
@@ -43,7 +43,7 @@ in
${lib.optionalString (databasePath != null) ''
--set E11SYNC_DATABASE_PATH "${databasePath}" \
''} \
- --set E11SYNC_STATIC_ROOT "${e11sync-static.passthru.manifest}" \
+ --set E11SYNC_STATIC_ROOT "${e11sync-djangostatic.passthru.manifest}" \
--set E11SYNC_DEBUG "" \
--set GEOIP_PATH "${geoip-mmdb}" \
'';
@@ -55,7 +55,7 @@ in
unpackPhase
patchShebangs --build app/manage.py
export GEOIP_PATH="${geoip-mmdb}"
- export E11SYNC_STATIC_ROOT="${e11sync-static.passthru.manifest}"
+ export E11SYNC_STATIC_ROOT="${e11sync-djangostatic.passthru.manifest}"
app/manage.py test app
mkdir -p $out
'';
diff --git a/pkgs/e11sync-djangostatic.nix b/pkgs/e11sync-djangostatic.nix
@@ -0,0 +1,36 @@
+{
+ stdenv,
+ runCommand,
+ python3Packages,
+ findutils,
+ dart-sass,
+ jq,
+}: let
+ self = stdenv.mkDerivation {
+ name = "e11sync-djangostatic";
+ srcs = [../app ../static];
+ sourceRoot = ".";
+ nativeBuildInputs = [
+ python3Packages.django
+ dart-sass
+ findutils
+ ];
+ patchPhase = ''patchShebangs --build app/manage.py'';
+ buildPhase = ''
+ make -C static style.css
+ app/manage.py collectstatic
+
+ # remove unversioned files
+ pushd app/_static
+ ${jq}/bin/jq -r '.paths | keys[]' staticfiles.json | xargs rm
+ popd
+ '';
+ installPhase = ''find; mv app/_static $out'';
+
+ passthru.manifest = runCommand "e11sync-djangostatic-manifest" {} ''
+ mkdir -p $out
+ cp ${self}/staticfiles.json $out/
+ '';
+ };
+in
+ self
diff --git a/pkgs/e11sync-static.nix b/pkgs/e11sync-static.nix
@@ -1,46 +1,21 @@
{
- stdenv,
runCommand,
- python3Packages,
zopfli,
brotli,
findutils,
- dart-sass,
- jq,
-}: let
- self = stdenv.mkDerivation {
- name = "e11sync-static";
- srcs = [../app ../static];
- sourceRoot = ".";
- nativeBuildInputs = [
- python3Packages.django
- dart-sass
- findutils
- ];
- patchPhase = ''patchShebangs --build app/manage.py'';
- buildPhase = ''
- make -C static style.css
- app/manage.py collectstatic
-
- # remove unversioned files
- (cd app/_static;
- ${jq}/bin/jq -r '.paths | keys[]' staticfiles.json | xargs rm
- )
-
- find app/_static \
- -name '*.css' -or \
- -name '*.js' -or \
- -name '*.svg' -or \
- -name '*.txt' | \
- tee >(xargs -n1 -P''$(nproc) ${zopfli}/bin/zopfli) | \
- xargs -n1 -P''$(nproc) ${brotli}/bin/brotli
- '';
- installPhase = ''mv app/_static $out'';
-
- passthru.manifest = runCommand "e11sync-static-manifest" {} ''
- mkdir -p $out
- cp ${self}/staticfiles.json $out/
- '';
- };
-in
- self
+ e11sync-djangostatic,
+}:
+runCommand "e11sync-static" {
+ src = e11sync-djangostatic;
+ nativeBuildInputs = [findutils];
+} ''
+ unpackPhase
+ find e11sync-djangostatic \
+ -name '*.css' -or \
+ -name '*.js' -or \
+ -name '*.svg' -or \
+ -name '*.txt' | \
+ tee >(xargs -n1 -P''$(nproc) ${zopfli}/bin/zopfli) | \
+ xargs -n1 -P''$(nproc) ${brotli}/bin/brotli
+ mv e11sync-djangostatic $out
+''