diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter')
2 files changed, 119 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix new file mode 100644 index 000000000000..e5d9910024a5 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix @@ -0,0 +1,44 @@ +{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, substituteAll +, python, util-linux, pygit2, gitMinimal, git-annex, cacert +}: + +buildPythonPackage rec { + pname = "git-annex-adapter"; + version = "0.2.2"; + + disabled = !isPy3k; + + # No tests in PyPI tarball + src = fetchFromGitHub { + owner = "alpernebbi"; + repo = pname; + rev = "v${version}"; + sha256 = "0666vqspgnvmfs6j3kifwyxr6zmxjs0wlwis7br4zcq0gk32zgdx"; + }; + + patches = [ + (substituteAll { + src = ./git-annex-path.patch; + gitAnnex = "${git-annex}/bin/git-annex"; + }) + ]; + + checkInputs = [ + gitMinimal + util-linux # `rev` is needed in tests/test_process.py + ]; + + propagatedBuildInputs = [ pygit2 cacert ]; + + checkPhase = '' + ${python.interpreter} -m unittest + ''; + pythonImportsCheck = [ "git_annex_adapter" ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/alpernebbi/git-annex-adapter"; + description = "Call git-annex commands from Python"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/git-annex-path.patch b/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/git-annex-path.patch new file mode 100644 index 000000000000..8b1b854058b9 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/git-annex-path.patch @@ -0,0 +1,75 @@ +diff --git a/git_annex_adapter/process.py b/git_annex_adapter/process.py +index 6ddb985..bbd0ab8 100644 +--- a/git_annex_adapter/process.py ++++ b/git_annex_adapter/process.py +@@ -389,7 +389,7 @@ class GitAnnexBatchProcess: + _procclass = Process + + def __init__(self, args, workdir): +- self.args = ('git', 'annex', *args) ++ self.args = ('@gitAnnex@', *args) + self.workdir = workdir + self._process = None + self._dead_process = None +@@ -586,7 +586,7 @@ class ProcessRunner: + class GitAnnexRunner(ProcessRunner): + """Helper class to run git-annex commands.""" + def __init__(self, args_prefix, workdir): +- args_prefix = ('git-annex', *args_prefix) ++ args_prefix = ('@gitAnnex@', *args_prefix) + super().__init__(args_prefix, workdir) + + def __call__(self, *args_suffix): +diff --git a/tests/test_process.py b/tests/test_process.py +index ed619bb..9335078 100644 +--- a/tests/test_process.py ++++ b/tests/test_process.py +@@ -181,7 +181,7 @@ class TestProcessOnEmptyAnnex(TempAnnexTestCase): + def test_process_annex_metadata_batch(self): + """Process should be able to read one line""" + with Process( +- ['git', 'annex', 'metadata', '--batch', '--json'], ++ ['@gitAnnex@', 'metadata', '--batch', '--json'], + str(self.tempdir), + ) as proc: + proc.writeline( +@@ -202,7 +202,7 @@ class TestProcessOnEmptyAnnex(TempAnnexTestCase): + def test_jsonprocess_annex_metadata_batch(self): + """JsonProcess should encode and decode properly""" + with JsonProcess( +- ['git', 'annex', 'metadata', '--batch', '--json'], ++ ['@gitAnnex@', 'metadata', '--batch', '--json'], + str(self.tempdir), + ) as proc: + obj = proc({'key':'SHA256E-s0--0'}) +@@ -218,7 +218,7 @@ class TestProcessOnEmptyAnnex(TempAnnexTestCase): + def test_process_annex_info_batch(self): + """Process should be able to read multiple lines""" + with Process( +- ['git', 'annex', 'info', '--batch'], ++ ['@gitAnnex@', 'info', '--batch'], + str(self.tempdir), + ) as proc: + proc.writeline('here') +diff --git a/tests/utils.py b/tests/utils.py +index 281ee3f..969aedc 100644 +--- a/tests/utils.py ++++ b/tests/utils.py +@@ -107,7 +107,7 @@ class TempAnnexTestCase(TempRepoTestCase): + # Have to uninit before cleaning directory, since git-annex + # marks its objects read-only so that they don't get deleted. + subprocess.run( +- ['git', 'annex', 'uninit'], ++ ['@gitAnnex@', 'uninit'], + cwd=self.repo.workdir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, +@@ -122,7 +122,7 @@ class TempAnnexTestCase(TempRepoTestCase): + path.write_text(text) + + subprocess.run( +- ['git', 'annex', 'add', '--quiet', relpath], ++ ['@gitAnnex@', 'add', '--quiet', relpath], + cwd=self.repo.workdir, + check=True, + ) |