linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / python-modules / ansible-lint / default.nix
blobe404edddbcf3f385758e1c4a10cf6377f9192d08
1 { lib
2 , fetchPypi
3 , buildPythonPackage
4 , isPy27
5 , ansible
6 , pyyaml
7 , ruamel-yaml
8 , rich
9 , pytestCheckHook
10 , pytest-xdist
11 , git
12 , wcmatch
13 , enrich
14 , python
17 buildPythonPackage rec {
18   pname = "ansible-lint";
19   version = "5.0.2";
20   disabled = isPy27;
21   format = "pyproject";
23   src = fetchPypi {
24     inherit pname version;
25     sha256 = "sha256-vgt/KqNozTPaON/I19SybBZuo7bbl3Duq5dTBTMlj44=";
26   };
28   postPatch = ''
29     substituteInPlace src/ansiblelint/file_utils.py \
30       --replace 'raise RuntimeError("Unable to determine file type for %s" % pathex)' 'return "playbook"'
31   '';
33   buildInputs = [ python ];
35   propagatedBuildInputs = [ ansible enrich pyyaml rich ruamel-yaml wcmatch ];
37   checkInputs = [ pytestCheckHook pytest-xdist git ];
39   preCheck = ''
40     # ansible wants to write to $HOME and crashes if it can't
41     export HOME=$(mktemp -d)
42     export PATH=$PATH:${lib.makeBinPath [ ansible ]}
44     # create a working ansible-lint executable
45     export PATH=$PATH:$PWD/src/ansiblelint
46     ln -rs src/ansiblelint/__main__.py src/ansiblelint/ansible-lint
47     patchShebangs src/ansiblelint/__main__.py
48   '';
50   disabledTests = [
51     # requires network
52     "test_prerun_reqs_v1"
53     "test_prerun_reqs_v2"
54     # Assertion error with negative numbers; maybe requieres an ansible update?
55     "test_negative"
56     "test_example"
57     "test_playbook"
58     "test_included_tasks"
59     "test_long_line"
61     "test_get_yaml_files_umlaut"
62     "test_run_inside_role_dir"
63     "test_role_handler_positive"
64   ];
66   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ansible ]}" ];
68   meta = with lib; {
69     homepage = "https://github.com/ansible-community/ansible-lint";
70     description = "Best practices checker for Ansible";
71     license = licenses.mit;
72     maintainers = with maintainers; [ sengaya SuperSandro2000 ];
73   };