aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/python-modules/git-annex-adapter/git-annex-path.patch75
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,
+ )