install.ui: move get_recommends to new file (MR 2010)

This commit is contained in:
Dylan Van Assche 2021-01-24 10:00:22 +01:00
parent 10abb10dcf
commit 8455c82eee
No known key found for this signature in database
GPG Key ID: 0B19D2A65870B448
4 changed files with 42 additions and 33 deletions

View File

@ -16,6 +16,7 @@ import pmb.helpers.devices
import pmb.helpers.run
import pmb.install.blockdevice
import pmb.install.recovery
import pmb.install.ui
import pmb.install
@ -100,36 +101,6 @@ def get_kernel_package(args, device):
return ["device-" + device + "-kernel-" + args.kernel]
def get_recommends_packages(args):
""" Get all packages listed in _pmb_recommends of the UI and UI-extras
package, unless running with pmbootstrap install --no-recommends.
:returns: list of pkgnames, e.g. ["chatty", "gnome-contacts"] """
ret = []
if not args.install_recommends or args.ui == "none":
return ret
# UI package
meta = f"postmarketos-ui-{args.ui}"
apkbuild = pmb.helpers.pmaports.get(args, meta)
recommends = apkbuild["_pmb_recommends"]
if recommends:
logging.debug(f"{meta}: install _pmb_recommends:"
f" {', '.join(recommends)}")
ret += recommends
# UI-extras subpackage
meta_extras = f"{meta}-extras"
if args.ui_extras and meta_extras in apkbuild["subpackages"]:
recommends = apkbuild["subpackages"][meta_extras]["_pmb_recommends"]
if recommends:
logging.debug(f"{meta_extras}: install _pmb_recommends:"
f" {', '.join(recommends)}")
ret += recommends
return ret
def copy_files_from_chroot(args, suffix):
"""
Copy all files from the rootfs chroot to /mnt/install, except
@ -687,7 +658,7 @@ def create_device_rootfs(args, step, steps):
["device-" + args.device] +
get_kernel_package(args, args.device) +
get_nonfree_packages(args, args.device) +
get_recommends_packages(args))
pmb.install.ui.get_recommends(args))
if not args.install_base:
install_packages = [p for p in install_packages if p != "postmarketos-base"]
if args.ui.lower() != "none":

37
pmb/install/ui.py Normal file
View File

@ -0,0 +1,37 @@
# Copyright 2021 Dylan Van Assche
# SPDX-License-Identifier: GPL-3.0-or-later
import logging
import pmb.helpers.pmaports
def get_recommends(args):
""" Get all packages listed in _pmb_recommends of the UI and UI-extras
package, unless running with pmbootstrap install --no-recommends.
:returns: list of pkgnames, e.g. ["chatty", "gnome-contacts"] """
ret = []
if not args.install_recommends or args.ui == "none":
return ret
# UI package
meta = f"postmarketos-ui-{args.ui}"
apkbuild = pmb.helpers.pmaports.get(args, meta)
recommends = apkbuild["_pmb_recommends"]
if recommends:
logging.debug(f"{meta}: install _pmb_recommends:"
f" {', '.join(recommends)}")
ret += recommends
# UI-extras subpackage
meta_extras = f"{meta}-extras"
if args.ui_extras and meta_extras in apkbuild["subpackages"]:
recommends = apkbuild["subpackages"][meta_extras]["_pmb_recommends"]
if recommends:
logging.debug(f"{meta_extras}: install _pmb_recommends:"
f" {', '.join(recommends)}")
ret += recommends
return ret

View File

@ -89,6 +89,7 @@ py_files="
pmb/helpers/ui.py
pmb/install/__init__.py
pmb/install/recovery.py
pmb/install/ui.py
pmb/parse/__init__.py
pmb/parse/arch.py
pmb/parse/arguments.py

View File

@ -46,9 +46,9 @@ def test_get_nonfree_packages(args):
assert func(args, device) == []
def test_get_recommends_packages(args):
def test_get_recommends(args):
args.aports = pmb_test.const.testdata + "/pmb_recommends"
func = pmb.install._install.get_recommends_packages
func = pmb.install.ui.get_recommends
# UI: none
args.install_recommends = True