{ pkgs ? import { }, lint ? false }: pkgs.python3Packages.callPackage ({ lib, buildPythonPackage, makeWrapper , autopep8, mypy, pylint, beautifulsoup4, requests, requests-cache , texliveFull, types-beautifulsoup4, types-requests, xdg-base-dirs , pandoc-cli }: buildPythonPackage rec { pname = "paperdoorknob"; version = lib.removeSuffix "'" (lib.removePrefix "paperdoorknob_version = '" (lib.fileContents ./version.py)); src = lib.cleanSource ./.; nativeBuildInputs = [ makeWrapper ]; propagatedBuildInputs = [ beautifulsoup4 requests requests-cache xdg-base-dirs ]; nativeCheckInputs = [ mypy pandoc-cli texliveFull types-beautifulsoup4 types-requests ] ++ lib.optionals lint [ autopep8 pylint ]; doCheck = true; checkPhase = "./test.sh"; postInstall = '' wrapProgram "$out/bin/paperdoorknob" \ --add-flags "--pandoc=${pandoc-cli}/bin/pandoc" \ ''; meta = { description = "A polite glowfic → printable book scraper."; homepage = "https://git.scottworley.com/paperdoorknob"; license = pkgs.lib.licenses.gpl3; maintainers = with pkgs.lib.maintainers; [ chkno ]; }; }) { inherit (pkgs.haskellPackages) pandoc-cli; }