1{ lib
2, aws-sam-cli
3, boto3
4, buildPythonPackage
5, cfn-lint
6, fetchFromGitHub
7, mock
8, moto
9, mypy-boto3-ebs
10, poetry-core
11, pytestCheckHook
12, pythonOlder
13, typer
14, urllib3
15}:
16
17buildPythonPackage rec {
18 pname = "dsnap";
19 version = "1.0.0";
20 format = "pyproject";
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "RhinoSecurityLabs";
26 repo = "dsnap";
27 rev = "refs/tags/v${version}";
28 hash = "sha256-yKch+tKjFhvZfzloazMH378dkERF8gnZEX1Som+d670=";
29 };
30
31 nativeBuildInputs = [
32 poetry-core
33 ];
34
35 propagatedBuildInputs = [
36 boto3
37 urllib3
38 ];
39
40 passthru.optional-dependencies = {
41 cli = [
42 typer
43 ];
44 scannerd = [
45 aws-sam-cli
46 cfn-lint
47 ];
48 };
49
50 nativeCheckInputs = [
51 mock
52 moto
53 mypy-boto3-ebs
54 pytestCheckHook
55 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
56
57 pythonImportsCheck = [
58 "dsnap"
59 ];
60
61 meta = with lib; {
62 description = "Utility for downloading and mounting EBS snapshots using the EBS Direct API's";
63 homepage = "https://github.com/RhinoSecurityLabs/dsnap";
64 changelog = "https://github.com/RhinoSecurityLabs/dsnap/releases/tag/v${version}";
65 license = licenses.bsd3;
66 maintainers = with maintainers; [ fab ];
67 };
68}
69