1{ lib
2, fetchFromGitHub
3, python3
4}:
5
6python3.pkgs.buildPythonApplication rec {
7 pname = "atomic-operator";
8 version = "0.8.5";
9 format = "setuptools";
10
11 src = fetchFromGitHub {
12 owner = "swimlane";
13 repo = pname;
14 rev = version;
15 hash = "sha256-DyNqu3vndyLkmfybCfTbgxk3t/ALg7IAkAMg4kBkH7Q=";
16 };
17
18 postPatch = ''
19 substituteInPlace setup.py \
20 --replace "charset_normalizer~=2.0.0" "charset_normalizer"
21 '';
22
23 propagatedBuildInputs = with python3.pkgs; [
24 attrs
25 certifi
26 chardet
27 charset-normalizer
28 fire
29 idna
30 paramiko
31 pick
32 pypsrp
33 pyyaml
34 requests
35 urllib3
36 ];
37
38 nativeCheckInputs = with python3.pkgs; [
39 pytestCheckHook
40 ];
41
42 pythonImportsCheck = [
43 "atomic_operator"
44 ];
45
46 disabledTests = [
47 # Tests require network access
48 "test_download_of_atomic_red_team_repo"
49 "test_setting_input_arguments"
50 "test_config_parser"
51 ];
52
53 meta = with lib; {
54 description = "Tool to execute Atomic Red Team tests (Atomics)";
55 homepage = "https://www.atomic-operator.com/";
56 license = licenses.mit;
57 maintainers = with maintainers; [ fab ];
58 };
59}