forked from Mirror/pmbootstrap
With the new chroot type, we can now write fancy paths in the pythonic way. Convert most of the codebase over, as well as adding various other type hints. Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
# Copyright 2023 Dylan Van Assche
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
from typing import List
|
|
from pmb.helpers import logging
|
|
|
|
from pmb.core.types import PmbArgs
|
|
import pmb.helpers.pmaports
|
|
|
|
|
|
def get_groups(args: PmbArgs) -> List[str]:
|
|
""" Get all groups to which the user additionally must be added.
|
|
The list of groups are listed in _pmb_groups of the UI and
|
|
UI-extras package.
|
|
|
|
:returns: list of groups, e.g. ["feedbackd", "udev"] """
|
|
ret: List[str] = []
|
|
if args.ui == "none":
|
|
return ret
|
|
|
|
# UI package
|
|
meta = f"postmarketos-ui-{args.ui}"
|
|
apkbuild = pmb.helpers.pmaports.get(args, meta)
|
|
groups = apkbuild["_pmb_groups"]
|
|
if groups:
|
|
logging.debug(f"{meta}: install _pmb_groups:"
|
|
f" {', '.join(groups)}")
|
|
ret += groups
|
|
|
|
# UI-extras subpackage
|
|
meta_extras = f"{meta}-extras"
|
|
if args.ui_extras and meta_extras in apkbuild["subpackages"]:
|
|
groups = apkbuild["subpackages"][meta_extras]["_pmb_groups"]
|
|
if groups:
|
|
logging.debug(f"{meta_extras}: install _pmb_groups:"
|
|
f" {', '.join(groups)}")
|
|
ret += groups
|
|
|
|
return ret
|