python-mailman-web: turn these Djando configuration files into a make-shift Python library

Suggested in https://github.com/NixOS/nixpkgs/pull/67951#issuecomment-530309702.
wip/yesman
Peter Simons 5 years ago
parent 72c7ba5aba
commit 86f8895abb
  1. 11
      nixos/modules/services/mail/mailman.nix
  2. 22
      pkgs/servers/mail/mailman/web.nix

@ -62,6 +62,12 @@ let
installPhase = "install -D ${djangoPyEnv}/bin/django-admin $out/bin/mailman-django-admin";
};
mailmanWeb = pkgs.python3Packages.mailman-web.override {
serverEMail = cfg.siteOwner;
archiverKey = cfg.hyperkittyApiKey;
allowedHosts = cfg.webHosts;
};
in {
###### interface
@ -88,10 +94,7 @@ in {
webRoot = mkOption {
type = types.path;
default = pkgs.python3Packages.mailman-web.override { serverEMail = cfg.siteOwner;
archiverKey = cfg.hyperkittyApiKey;
allowedHosts = cfg.webHosts;
};
default = "${mailmanWeb}/${pkgs.python3.sitePackages}";
defaultText = "pkgs.python3Packages.mailman-web";
description = ''
The web root for the Hyperkity + Postorius apps provided by Mailman.

@ -1,4 +1,4 @@
{ stdenv
{ stdenv, python, hyperkitty, postorius, buildPythonPackage
, serverEMail ? "postmaster@example.org"
, archiverKey ? "SecretArchiverAPIKey"
, allowedHosts ? []
@ -10,18 +10,28 @@ let
in
stdenv.mkDerivation {
# We turn those Djando configuration files into a make-shift Python library so
# that Nix users can use this package as a part of their buildInputs to import
# the code. Also, this package implicitly provides an environment in which the
# Django app can be run.
buildPythonPackage {
name = "mailman-web-0";
propagatedBuildInputs = [ hyperkitty postorius ];
unpackPhase = ":";
buildPhase = ":";
setuptoolsCheckPhase = ":";
installPhase = ''
install -D -m 444 ${./urls.py} $out/urls.py
install -D -m 444 ${./wsgi.py} $out/wsgi.py
substitute ${./settings.py} $out/settings.py \
d=$out/${python.sitePackages}
install -D -m 444 ${./urls.py} $d/urls.py
install -D -m 444 ${./wsgi.py} $d/wsgi.py
substitute ${./settings.py} $d/settings.py \
--subst-var-by SERVER_EMAIL '${serverEMail}' \
--subst-var-by ARCHIVER_KEY '${archiverKey}' \
--subst-var-by ALLOWED_HOSTS '${allowedHostsString}'
chmod 444 $out/settings.py
chmod 444 $d/settings.py
'';
}

Loading…
Cancel
Save