1{
2 lib,
3 boto3,
4 botocore,
5 buildPythonPackage,
6 cached-property,
7 click,
8 click-option-group,
9 fetchFromGitHub,
10 jinja2,
11 markdown,
12 policy-sentry,
13 pytestCheckHook,
14 pythonOlder,
15 pyyaml,
16 schema,
17 setuptools,
18}:
19
20buildPythonPackage rec {
21 pname = "cloudsplaining";
22 version = "0.8.1";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "salesforce";
29 repo = "cloudsplaining";
30 tag = version;
31 hash = "sha256-Ix4SlkGMtserksazXCk0XcDhmxNcfV/QCVsDJjWbu2k=";
32 };
33
34 postPatch = ''
35 # Ignore pinned versions
36 sed -i "s/'\(.*\)\(==\|>=\).*'/'\1'/g" requirements.txt
37 '';
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 boto3
43 botocore
44 cached-property
45 click
46 click-option-group
47 jinja2
48 markdown
49 policy-sentry
50 pyyaml
51 schema
52 ];
53
54 nativeCheckInputs = [ pytestCheckHook ];
55
56 disabledTests = [
57 "test_policy_expansion"
58 "test_statement_details_for_allow_not_action"
59 ];
60
61 pythonImportsCheck = [ "cloudsplaining" ];
62
63 meta = with lib; {
64 description = "Python module for AWS IAM security assessment";
65 homepage = "https://github.com/salesforce/cloudsplaining";
66 changelog = "https://github.com/salesforce/cloudsplaining/releases/tag/${src.tag}";
67 license = licenses.bsd3;
68 maintainers = with maintainers; [ fab ];
69 mainProgram = "cloudsplaining";
70 };
71}