1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fetchpatch,
6 flit-core,
7 pytestCheckHook,
8 pythonOlder,
9 borgbackup,
10 appdirs,
11 arrow,
12 docopt,
13 inform,
14 nestedtext,
15 parametrize-from-file,
16 quantiphy,
17 requests,
18 shlib,
19 voluptuous,
20}:
21
22buildPythonPackage rec {
23 pname = "emborg";
24 version = "1.38";
25 format = "pyproject";
26
27 disabled = pythonOlder "3.7";
28
29 src = fetchFromGitHub {
30 owner = "KenKundert";
31 repo = "emborg";
32 rev = "refs/tags/v${version}";
33 hash = "sha256-dK/6y1cjegomiy3fta2grUm4T0ZrylmstXfkJo4mDCE=";
34 };
35
36 nativeBuildInputs = [ flit-core ];
37
38 propagatedBuildInputs = [
39 appdirs
40 arrow
41 docopt
42 inform
43 quantiphy
44 requests
45 ];
46
47 nativeCheckInputs = [
48 nestedtext
49 parametrize-from-file
50 pytestCheckHook
51 shlib
52 voluptuous
53 borgbackup
54 ];
55
56 # this disables testing fuse mounts
57 MISSING_DEPENDENCIES = "fuse";
58
59 postPatch = ''
60 patchShebangs .
61 '';
62
63 # this patch fixes a whitespace issue in the message that a test is expecting, https://github.com/KenKundert/emborg/pull/67
64 patches = [
65 (fetchpatch {
66 url = "https://github.com/KenKundert/emborg/commit/afac6d1ddcecdb4bddbec87b6c8eed4cfbf4ebf9.diff";
67 sha256 = "3xg2z03FLKH4ckmiBZqE1FDjpgjgdO8OZL1ewrJlQ4o=";
68 })
69 ];
70
71 pythonImportsCheck = [ "emborg" ];
72
73 meta = with lib; {
74 description = "Interactive command line interface to Borg Backup";
75 homepage = "https://github.com/KenKundert/emborg";
76 changelog = "https://github.com/KenKundert/emborg/releases/tag/v${version}";
77 license = licenses.gpl3Plus;
78 maintainers = with maintainers; [ jpetrucciani ];
79 };
80}