nixpkgs/pkgs/tools/admin/ansible/default.nix

68 lines
1.6 KiB
Nix

{ stdenv, fetchurl, python2
, windowsSupport ? false
}:
let
generic = { version, sha256, py ? python2 }: py.pkgs.buildPythonPackage rec {
pname = "ansible";
inherit version;
outputs = [ "out" "man" ];
src = fetchurl {
url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
inherit sha256;
};
prePatch = ''
sed -i "s,/usr/,$out," lib/ansible/constants.py
'';
postInstall = ''
wrapPythonProgramsIn "$out/bin" "$out $PYTHONPATH"
for m in docs/man/man1/*; do
install -vD $m -t $man/share/man/man1
done
'';
doCheck = false;
dontStrip = true;
dontPatchELF = true;
dontPatchShebangs = false;
propagatedBuildInputs = with py.pkgs; [
pycrypto paramiko jinja2 pyyaml httplib2 boto six netaddr dnspython jmespath dopy
] ++ stdenv.lib.optional windowsSupport pywinrm;
meta = with stdenv.lib; {
homepage = http://www.ansible.com;
description = "A simple automation tool";
license = with licenses; [ gpl3 ] ;
maintainers = with maintainers; [ jgeerds joamaki ];
platforms = with platforms; linux ++ darwin;
};
};
in rec {
# We will carry all the supported versions
ansible_2_4 = generic {
version = "2.4.4.0";
sha256 = "0n1k6h0h6av74nw8vq98fmh6q4pq6brpwmx45282vh3bkdmpa0ib";
};
ansible_2_5 = generic {
version = "2.5.2";
sha256 = "1r9sq30xz3jrvx6yqssj5wmkml1f75rx1amd7g89f3ryngrq6m59";
};
ansible_2_6 = generic {
version = "2.6.2";
sha256 = "1y5gd9h641p6pphwd7j99yyqglyj23rkmid7wgzk62611754qzkl";
};
ansible2 = ansible_2_6;
ansible = ansible2;
}