diff --git a/overlays/default.nix b/overlays/default.nix index 21693bd..ea1b2b5 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -3,5 +3,5 @@ let packages = import ../pkgs { pkgs = prev; }; in { - inherit (packages) example-a example-b; + inherit (packages) example-a example-b pyzotero pyzotero-cli; } diff --git a/pkgs/default.nix b/pkgs/default.nix index bc3207c..fb312c3 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,6 +3,10 @@ let self = { example-a = pkgs.callPackage ./example-a { }; example-b = pkgs.callPackage ./example-b { }; + pyzotero = pkgs.callPackage ./pyzotero { }; + pyzotero-cli = pkgs.callPackage ./pyzotero-cli { + pyzotero = self.pyzotero; + }; }; in self // { default = self.example-a; } diff --git a/pkgs/pyzotero-cli/default.nix b/pkgs/pyzotero-cli/default.nix new file mode 100644 index 0000000..2e4ef1f --- /dev/null +++ b/pkgs/pyzotero-cli/default.nix @@ -0,0 +1,42 @@ +{ + lib, + python3Packages, + fetchPypi, + pyzotero, +}: + +python3Packages.buildPythonApplication rec { + pname = "pyzotero-cli"; + version = "0.1.6"; + pyproject = true; + + src = fetchPypi { + pname = "pyzotero_cli"; + inherit version; + hash = "sha256-qQdH4takRxu20bgYuOKgzn65fEplKP0GqVaD3PLH+5w="; + }; + + build-system = with python3Packages; [ + setuptools + ]; + + dependencies = [ + pyzotero + ] ++ (with python3Packages; [ + click + pyyaml + tabulate + python-dotenv + pytest + ]); + + pythonImportsCheck = [ "pyzotero_cli" ]; + + meta = { + description = "CLI wrapper for pyzotero - use Zotero from the command line"; + homepage = "https://github.com/chriscarrollsmith/pyzotero-cli"; + license = lib.licenses.mit; + platforms = lib.platforms.all; + mainProgram = "zot"; + }; +} diff --git a/pkgs/pyzotero/default.nix b/pkgs/pyzotero/default.nix new file mode 100644 index 0000000..29befcb --- /dev/null +++ b/pkgs/pyzotero/default.nix @@ -0,0 +1,38 @@ +{ + lib, + python3Packages, + fetchPypi, +}: + +python3Packages.buildPythonPackage rec { + pname = "pyzotero"; + version = "1.6.11"; + pyproject = true; + + src = fetchPypi { + pname = "pyzotero"; + inherit version; + hash = "sha256-l3P6k4+IrTFX2BJblBjpvY8nIzldDR8DT3QaQ+BzV3Q="; + }; + + build-system = with python3Packages; [ + setuptools + setuptools-scm + ]; + + dependencies = with python3Packages; [ + feedparser + bibtexparser + pytz + httpx + ]; + + pythonImportsCheck = [ "pyzotero" ]; + + meta = { + description = "Python API client for the Zotero API"; + homepage = "https://github.com/urschrei/pyzotero"; + license = lib.licenses.blueOak100; + platforms = lib.platforms.all; + }; +}