1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitLab,
5 pythonOlder,
6 pythonAtLeast,
7 argcomplete,
8 requests,
9 setuptools,
10 looseversion,
11 gnupg,
12}:
13
14buildPythonPackage rec {
15 pname = "sdkmanager";
16 version = "0.6.11";
17 pyproject = true;
18
19 disabled = pythonOlder "3.5";
20
21 src = fetchFromGitLab {
22 owner = "fdroid";
23 repo = "sdkmanager";
24 tag = version;
25 hash = "sha256-UBBko5copc5y9kdUr8jqJgijxRLfpRuJmT1QSow/eVg=";
26 };
27
28 pythonRelaxDeps = [ "urllib3" ];
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 argcomplete
34 requests
35 ]
36 ++ requests.optional-dependencies.socks
37 ++ lib.optionals (pythonAtLeast "3.12") [ looseversion ];
38
39 postInstall = ''
40 wrapProgram $out/bin/sdkmanager \
41 --suffix PATH : ${lib.makeBinPath [ gnupg ]}
42 '';
43
44 # has no tests
45 doCheck = false;
46
47 pythonImportsCheck = [ "sdkmanager" ];
48
49 meta = {
50 homepage = "https://gitlab.com/fdroid/sdkmanager";
51 description = "Drop-in replacement for sdkmanager from the Android SDK written in Python";
52 mainProgram = "sdkmanager";
53 license = lib.licenses.agpl3Plus;
54 maintainers = with lib.maintainers; [ linsui ];
55 };
56}