about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/misc/resholve/resholve.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/misc/resholve/resholve.nix')
-rw-r--r--nixpkgs/pkgs/development/misc/resholve/resholve.nix80
1 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/misc/resholve/resholve.nix b/nixpkgs/pkgs/development/misc/resholve/resholve.nix
new file mode 100644
index 000000000000..e8b4ed2cfb25
--- /dev/null
+++ b/nixpkgs/pkgs/development/misc/resholve/resholve.nix
@@ -0,0 +1,80 @@
+{ lib
+, callPackage
+, python27Packages
+, installShellFiles
+, fetchFromGitHub
+, file
+, findutils
+, gettext
+, bats
+, bash
+, doCheck ? true
+}:
+let
+  version = "0.4.2";
+  rSrc = fetchFromGitHub {
+    owner = "abathur";
+    repo = "resholve";
+    rev = "v${version}";
+    hash = "sha256-ArUQjqh4LRvFLzHiTIcae0q/VFxFF/X9eOFeRnYmTO0=";
+  };
+  deps = callPackage ./deps.nix {
+    /*
+    resholve needs to patch Oil, but trying to avoid adding
+    them all *to* nixpkgs, since they aren't specific to
+    nix/nixpkgs.
+    */
+    oilPatches = [
+      "${rSrc}/0001-add_setup_py.patch"
+      "${rSrc}/0002-add_MANIFEST_in.patch"
+      "${rSrc}/0003-fix_codegen_shebang.patch"
+      "${rSrc}/0004-disable-internal-py-yajl-for-nix-built.patch"
+    ];
+  };
+in
+python27Packages.buildPythonApplication {
+  pname = "resholve";
+  inherit version;
+  src = rSrc;
+  format = "other";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  propagatedBuildInputs = [ deps.oildev python27Packages.ConfigArgParse ];
+
+  patchPhase = ''
+    for file in resholve; do
+      substituteInPlace $file --subst-var-by version ${version}
+    done
+  '';
+
+  installPhase = ''
+    install -Dm755 resholve $out/bin/resholve
+    installManPage resholve.1
+  '';
+
+  inherit doCheck;
+  checkInputs = [ bats ];
+  RESHOLVE_PATH = "${lib.makeBinPath [ file findutils gettext ]}";
+
+  checkPhase = ''
+    # explicit interpreter for test suite
+    export INTERP="${bash}/bin/bash" PATH="$out/bin:$PATH"
+    patchShebangs .
+    ./test.sh
+  '';
+
+  # Do not propagate Python; may be obsoleted by nixos/nixpkgs#102613
+  # for context on why, see abathur/resholve#20
+  postFixup = ''
+    rm $out/nix-support/propagated-build-inputs
+  '';
+
+  meta = with lib; {
+    description = "Resolve external shell-script dependencies";
+    homepage = "https://github.com/abathur/resholve";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ abathur ];
+    platforms = platforms.all;
+  };
+}