File: cli.py

package info (click to toggle)
blender 4.3.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 309,564 kB
  • sloc: cpp: 2,385,210; python: 330,236; ansic: 280,972; xml: 2,446; sh: 972; javascript: 317; makefile: 170
file content (42 lines) | stat: -rw-r--r-- 1,168 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later

"""
Implementation of blender's command line ``--addons`` argument,
e.g. ``--addons a,b,c`` to enable add-ons.
"""

__all__ = (
    "set_from_cli",
)


def set_from_cli(addons_as_string):
    from addon_utils import (
        check,
        check_extension,
        enable,
        extensions_refresh,
    )
    addon_modules = addons_as_string.split(",")
    addon_modules_extensions = [m for m in addon_modules if check_extension(m)]
    addon_modules_extensions_has_failure = False

    if addon_modules_extensions:
        extensions_refresh(
            ensure_wheels=True,
            addon_modules_pending=addon_modules_extensions,
        )

    for m in addon_modules:
        if check(m)[1] is False:
            if enable(m, persistent=True, refresh_handled=True) is None:
                if check_extension(m):
                    addon_modules_extensions_has_failure = True

    # Re-calculate wheels if any extensions failed to be enabled.
    if addon_modules_extensions_has_failure:
        extensions_refresh(
            ensure_wheels=True,
        )