diff --git a/default.nix b/default.nix index b358736..03584a0 100644 --- a/default.nix +++ b/default.nix @@ -16,5 +16,6 @@ rec { keys = callPackage ./pkgs/keys { }; homePage = callPackage ./pkgs/homePage { }; deploy = callPackage ./pkgs/deploy.nix { }; + recipemd = python3.pkgs.toPythonApplication (python3Packages.callPackage ./pkgs/recipemd { }); scripts = callPackage ./pkgs/scripts.nix { }; } diff --git a/hosts/gorgon/home/default.nix b/hosts/gorgon/home/default.nix index 74b1d5d..afa28c7 100644 --- a/hosts/gorgon/home/default.nix +++ b/hosts/gorgon/home/default.nix @@ -20,6 +20,8 @@ in { nixpkgs.overlays = [ this.overlays.dadadaScripts + this.overlays.python3Packages + this.overlays.recipemd ]; imports = lib.attrValues this.hmModules; diff --git a/hosts/gorgon/home/pkgs.nix b/hosts/gorgon/home/pkgs.nix index fa2f1fc..5d95dee 100644 --- a/hosts/gorgon/home/pkgs.nix +++ b/hosts/gorgon/home/pkgs.nix @@ -69,6 +69,7 @@ with pkgs; [ python38Packages.dateutil python38Packages.managesieve python38Packages.solo-python + recipemd signal-desktop slurp sqlite diff --git a/overlays/default.nix b/overlays/default.nix index ea39702..848f0e1 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -10,4 +10,8 @@ dadadaScripts = super.callPackage ../pkgs/scripts.nix { }; }; sudo = import ./sudo.nix; + python3Packages = import ./python3-packages.nix; + recipemd = self: super: { + recipemd = super.python3Packages.toPythonApplication super.python3Packages.recipemd; + }; } diff --git a/overlays/python3-packages.nix b/overlays/python3-packages.nix new file mode 100644 index 0000000..9d3ddde --- /dev/null +++ b/overlays/python3-packages.nix @@ -0,0 +1,6 @@ +self: super: +{ + python3Packages = super.python3Packages // super.recurseIntoAttrs ( + super.python3Packages.callPackage ../pkgs/python-pkgs { } + ); +} diff --git a/pkgs/python-pkgs/default.nix b/pkgs/python-pkgs/default.nix new file mode 100644 index 0000000..7c10127 --- /dev/null +++ b/pkgs/python-pkgs/default.nix @@ -0,0 +1,4 @@ +{ callPackage }: +{ + recipemd = callPackage ./recipemd { }; +} diff --git a/pkgs/python-pkgs/recipemd/default.nix b/pkgs/python-pkgs/recipemd/default.nix new file mode 100644 index 0000000..4c0c41a --- /dev/null +++ b/pkgs/python-pkgs/recipemd/default.nix @@ -0,0 +1,74 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, python3Packages +}: + +buildPythonPackage rec { + pname = "recipemd"; + version = "4.0.5"; + + disabled = false; # requires python version >=3.7,<4 + + src = fetchFromGitHub { + owner = "tstehr"; + repo = "RecipeMD"; + rev = "v${version}"; + sha256 = "17ph5gnbrx6159cryjlpkkp15gvazvxgm6ixcmrbdmsg6rgyqcpn"; + }; + + # # Package conditions to handle + # # might have to sed setup.py and egg.info in patchPhase + # # sed -i "s/<package>.../<package>/" + # # Extra packages (may not be necessary) + # pytest-cov==2.8.1 # tests + # tox==3.20.1 # tests + # Sphinx==2.2.2 # docs + # m2r==0.2.1 # docs + # sphinxcontrib.fulltoc==1.2.0 # docs + # sphinxcontrib.autoprogram==0.1.5 # docs + # sphinx_autodoc_typehints==1.10.3 # docs + # sphinxcontrib.apidoc==0.3.0 # docs + # sphinx-autobuild==0.7.1 # docs + # twine==3.1.1 # release + # pytest==5.3.1 # dev + # pytest-cov==2.8.1 # dev + # tox==3.20.1 # dev + # Sphinx==2.2.2 # dev + # m2r==0.2.1 # dev + # sphinxcontrib.fulltoc==1.2.0 # dev + # sphinxcontrib.autoprogram==0.1.5 # dev + # sphinx_autodoc_typehints==1.10.3 # dev + # sphinxcontrib.apidoc==0.3.0 # dev + # sphinx-autobuild==0.7.1 # dev + # twine==3.1.1 # dev + + patchPhase = '' + # Override yarl version + sed -i 's/argcomplete~=1.10.0/yarl~=1.0/' setup.py + sed -i 's/yarl~=1.3.0/yarl~=1.0/' setup.py + ''; + + propagatedBuildInputs = with python3Packages; [ + dataclasses-json + yarl + CommonMark + argcomplete + pyparsing + ]; + + checkInputs = [ + pytestCheckHook + python3Packages.pytestcov + ]; + + doCheck = true; + + meta = with lib; { + description = "Markdown recipe manager, reference implementation of RecipeMD"; + homepage = https://recipemd.org; + license = [ licenses.lgpl3Only ]; + maintainers = [ maintainers.dadada ]; + }; +}