diff --git a/nixbld-etc-nixos/notifico/nixos-module.nix b/nixbld-etc-nixos/notifico/nixos-module.nix deleted file mode 100644 index 535450d..0000000 --- a/nixbld-etc-nixos/notifico/nixos-module.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ config, pkgs, lib, ... }: -with lib; -let - notifico = (pkgs.callPackage ./pkg.nix {}) - .overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ pkgs.makeWrapper ]; - # Extend the module path so that local_config.py can be found - postInstall = '' - ${attrs.postInstall} - - wrapProgram $out/bin/notifico \ - --set PYTHONPATH "$${PYTHONPATH}:${cfg.dbDir}" - ''; - }); - cfg = config.services.notifico; -in - -{ - options.services.notifico = { - enable = mkOption { - type = types.bool; - default = false; - description = "Enable the commit notification service"; - }; - enableLocalRedis = mkOption { - type = types.bool; - default = true; - description = "Enable a local Redis server"; - }; - dbDir = mkOption { - type = types.str; - default = "/var/db/notifico"; - description = "Home directory and location of the database file"; - }; - config = mkOption { - description = "Path to local_config.py, https://github.com/notifico/notifico/raw/master/notifico/config.py"; - type = types.str; - }; - }; - - config = mkIf cfg.enable { - users.users.notifico = { - group = "notifico"; - home = cfg.dbDir; - createHome = true; - }; - users.groups.notifico = {}; - - services.redis = mkIf cfg.enableLocalRedis { - enable = true; - bind = "127.0.0.1"; - }; - - systemd.services = - let - User = "notifico"; - Group = "notifico"; - WorkingDirectory = "${cfg.dbDir}"; - ExecStartPre = [ - "${pkgs.coreutils}/bin/rm -f local_config.pyc" - "${pkgs.coreutils}/bin/ln -sf ${cfg.config} local_config.py" - ]; - - notifico-init = { - description = "Notifico initialization"; - serviceConfig = { - inherit User Group WorkingDirectory ExecStartPre; - Type = "oneshot"; - ExecStart = "${notifico}/bin/notifico init"; - }; - }; - notificoService = component: { - description = "Notifico ${component}"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" "notifico-init.service" ]; - requires = [ "notifico-init.service" ]; - serviceConfig = { - inherit User Group WorkingDirectory ExecStartPre; - Type = "simple"; - ExecStart = "${notifico}/bin/notifico ${component}"; - - Restart = "always"; - RestartSec = "5sec"; - }; - }; - in { - inherit notifico-init; - notifico-www = notificoService "www"; - notifico-worker = notificoService "worker"; - notifico-bots = notificoService "bots"; - }; - }; -} diff --git a/nixbld-etc-nixos/notifico/pkg.nix b/nixbld-etc-nixos/notifico/pkg.nix deleted file mode 100644 index 8f47953..0000000 --- a/nixbld-etc-nixos/notifico/pkg.nix +++ /dev/null @@ -1,107 +0,0 @@ -{ python2Packages, python2, fetchFromGitHub, fetchurl }: - -let - Flask-Gravatar = python2Packages.buildPythonPackage { - name = "Flask-Gravatar"; - src = python2Packages.fetchPypi { - pname = "Flask-Gravatar"; - version = "0.5.0"; - sha256 = "1qb2ylirjajdqsmldhwfdhf8i86k7vlh3y4gnqfqj4n6q8qmyrk0"; - }; - propagatedBuildInputs = with python2Packages; [ - pytestrunner - flask - ]; - checkInputs = with python2Packages; [ - check-manifest - coverage - isort - pydocstyle - pytestcache - pytestcov - pytestpep8 - pytest - pygments - ]; - }; - utopia = python2Packages.buildPythonPackage { - name = "utopia"; - src = fetchFromGitHub { - owner = "notifico"; - repo = "utopia"; - rev = "70293ed5e1ca55232e0fae71061e7e9b9b29be6f"; - sha256 = "11cnh9l4d9jlhafnfis9si6kgk9zsdd5439qnhxh6dca3x4a986q"; - }; - propagatedBuildInputs = with python2Packages; [ - gevent - blinker - ]; - doCheck = false; - }; - Flask-WTF = python2Packages.flask_wtf.overrideAttrs(oa: rec { - version = "0.8.4"; - src = python2Packages.fetchPypi { - pname = "Flask-WTF"; - inherit version; - sha256 = "1khbwmlrcnk9f46f7kf531n06pkyfs6nc8fk273js9mj2igngg2y"; - }; - }); - Flask-XML-RPC = python2Packages.flask_wtf.overrideAttrs(oa: rec { - version = "0.1.2"; - src = python2Packages.fetchPypi { - pname = "Flask-XML-RPC"; - inherit version; - sha256 = "1dwalj7pc5iid9l1k50q5mllirnn9f5s7jq54a66x48a4j179p2a"; - }; - }); -in - python2Packages.buildPythonApplication { - name = "notifico"; - src = fetchFromGitHub { - owner = "notifico"; - repo = "notifico"; - rev = "6af849e4c75dff4d740051676f5a2093a44efcee"; - sha256 = "18jifqdvjy4x5s1bh7vx501pin52g4n3hhw1z4m2c0h512z4spdr"; - }; - patches = [ - (fetchurl { - url = https://github.com/whitequark/notifico/commit/22b582fad6cb97af6f7437e8462d720ddacc42ef.patch; - sha256 = "0w8i8hf1r8b0p1y1zn9vyvnyi20qp120aiyalqymhsxsh17mma52"; - }) - ]; - propagatedBuildInputs = with python2Packages; [ - flask - Flask-WTF - Flask-Gravatar - flask_sqlalchemy - Flask-XML-RPC - flask_mail - flask-caching - Fabric - sqlalchemy - utopia - gevent - oauth2 - redis - gunicorn - requests - PyGithub - xmltodict - unidecode - raven - blinker - docopt - celery - ]; - postInstall = '' - mkdir $out/bin - cat << EOF > $out/bin/notifico - #!${python2}/bin/python - import sys - from notifico.__main__ import main - - sys.exit(main(sys.argv)) - EOF - chmod +x $out/bin/notifico - ''; - }