about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/pypi2nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/tools/pypi2nix
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/tools/pypi2nix')
-rw-r--r--nixpkgs/pkgs/development/tools/pypi2nix/default.nix106
1 files changed, 106 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/pypi2nix/default.nix b/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
new file mode 100644
index 000000000000..70c292365abc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchFromGitHub, fetchurl, pythonPackages, zip, makeWrapper, nix, nix-prefetch-git
+, nix-prefetch-hg
+}:
+
+let
+
+  version = "1.8.1";
+
+  src = fetchFromGitHub {
+    owner = "garbas";
+    repo = "pypi2nix";
+    rev = "v${version}";
+    sha256 = "039a2ys7ijzi2sa2haa6a8lbhncvd1wfsi6gcy9vm02gi31ghzyb";
+  };
+
+  click = fetchurl {
+    url = "https://pypi.python.org/packages/95/d9/c3336b6b5711c3ab9d1d3a80f1a3e2afeb9d8c02a7166462f6cc96570897/click-6.7.tar.gz";
+    sha256 = "02qkfpykbq35id8glfgwc38yc430427yd05z1wc5cnld8zgicmgi";
+  };
+
+  requests = fetchurl {
+    url = "https://pypi.python.org/packages/16/09/37b69de7c924d318e51ece1c4ceb679bf93be9d05973bb30c35babd596e2/requests-2.13.0.tar.gz";
+    sha256 = "1s0wg4any4dsv5l3hqjxqk2zgb7pdbqhy9rhc8kh3aigfq4ws8jp";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "pypi2nix-${version}";
+  srcs = [
+    src
+    click
+    requests
+  ];
+  buildInputs = [
+    pythonPackages.python pythonPackages.flake8
+    zip makeWrapper nix.out nix-prefetch-git nix-prefetch-hg
+  ];
+
+  sourceRoot = ".";
+
+  postUnpack = ''
+    mkdir -p $out/pkgs
+
+    mv click-*/click                    $out/pkgs/click
+    mv requests-*/requests              $out/pkgs/
+
+    if [ "$IN_NIX_SHELL" != "1" ]; then
+      if [ -e git-export ]; then
+        mv git-export/src/pypi2nix      $out/pkgs/pypi2nix
+      else
+        mv source/src/pypi2nix          $out/pkgs/pypi2nix
+      fi
+    fi
+  '';
+
+  patchPhase = ''
+    sed -i -e "s|default='nix-shell',|default='${nix.out}/bin/nix-shell',|" $out/pkgs/pypi2nix/cli.py
+    sed -i -e "s|nix-prefetch-git|${nix-prefetch-git}/bin/nix-prefetch-git|" $out/pkgs/pypi2nix/stage2.py
+    sed -i -e "s|nix-prefetch-hg|${nix-prefetch-hg}/bin/nix-prefetch-hg|" $out/pkgs/pypi2nix/stage2.py
+  '';
+
+  commonPhase = ''
+    mkdir -p $out/bin
+
+    echo "#!${pythonPackages.python.interpreter}" >  $out/bin/pypi2nix
+    echo "import pypi2nix.cli" >> $out/bin/pypi2nix
+    echo "pypi2nix.cli.main()" >> $out/bin/pypi2nix
+
+    chmod +x $out/bin/pypi2nix
+
+    export PYTHONPATH=$out/pkgs:$PYTHONPATH
+  '';
+
+  # flake8 doesn't run on python3
+  doCheck = false;
+  checkPhase = ''
+    flake8 ${src}/src
+  '';
+
+  installPhase = commonPhase + ''
+    wrapProgram $out/bin/pypi2nix \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix PATH : "${nix-prefetch-git}/bin:${nix-prefetch-hg}/bin"
+  '';
+
+  shellHook = ''
+    export home=`pwd`
+    export out=/tmp/`pwd | md5sum | cut -f 1 -d " "`-$name
+
+    rm -rf $out
+    mkdir -p $out
+
+    cd $out
+    runHook unpackPhase
+    runHook commonPhase
+    cd $home
+
+    export PATH=$out/bin:$PATH
+    export PYTHONPATH=`pwd`/src:$PYTHONPATH
+  '';
+
+  meta = {
+    homepage = https://github.com/garbas/pypi2nix;
+    description = "A tool that generates nix expressions for your python packages, so you don't have to.";
+    maintainers = with stdenv.lib.maintainers; [ garbas ];
+  };
+}