forked from Mirror/pmbootstrap
Cease merging pmbootstrap.cfg into args, implement a Context type to let us pull globals out of thin air (as an intermediate workaround) and rip args out of a lot of the codebase. This is just a first pass, after this we can split all the state that leaked over into Context into types with narrower scopes (like a BuildContext(), etc). Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# Copyright 2023 Oliver Smith
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
from pathlib import Path
|
|
import pmb.config
|
|
from pmb.types import PmbArgs
|
|
|
|
|
|
# def merge_with_args(args: PmbArgs):
|
|
# """We have the internal config (pmb/config/__init__.py) and the user config
|
|
# (usually ~/.config/pmbootstrap.cfg, can be changed with the '-c'
|
|
# parameter).
|
|
|
|
# Args holds the variables parsed from the commandline (e.g. -j fills out
|
|
# args.jobs), and values specified on the commandline count the most.
|
|
|
|
# In case it is not specified on the commandline, for the keys in
|
|
# pmb.config.config_keys, we look into the value set in the the user config.
|
|
|
|
# When that is empty as well (e.g. just before pmbootstrap init), or the key
|
|
# is not in pmb.config_keys, we use the default value from the internal
|
|
# config.
|
|
# """
|
|
# # Use defaults from the user's config file
|
|
# cfg = pmb.config.load(args)
|
|
# for key in cfg["pmbootstrap"]:
|
|
# if key not in args or getattr(args, key) is None:
|
|
# value = cfg["pmbootstrap"][key]
|
|
# if key in pmb.config.defaults:
|
|
# default = pmb.config.defaults[key]
|
|
# if isinstance(default, bool):
|
|
# value = (value.lower() == "true")
|
|
# setattr(args, key, value)
|
|
# setattr(args, 'selected_providers', cfg['providers'])
|
|
|
|
# # Use defaults from pmb.config.defaults
|
|
# for key, value in pmb.config.defaults.items():
|
|
# if key not in args or getattr(args, key) is None:
|
|
# setattr(args, key, value)
|
|
|
|
# pmb.config.work_dir(Path(cfg["pmbootstrap"]["work"]))
|
|
|
|
# # Make sure args.aports is a Path object
|
|
# setattr(args, "aports", Path(args.aports))
|