cat_config,
expand_delayed_specifiers,
format_bytes,
+ get_configdir,
have_history,
in_sandbox,
parse_boolean,
keylength = 2048
expiration_date = datetime.date.today() + datetime.timedelta(int(args.genkey_valid_days))
- for f in ("mkosi.key", "mkosi.crt"):
- if Path(f).exists() and not args.force:
+ configdir = get_configdir(args)
+
+ for f in (configdir / "mkosi.key", configdir / "mkosi.crt"):
+ if f.exists() and not args.force:
die(
f"{f} already exists",
hint="To generate new keys, first remove mkosi.key and mkosi.crt",
"-new",
"-x509",
"-newkey", f"rsa:{keylength}",
- "-keyout", "mkosi.key",
- "-out", "mkosi.crt",
+ "-keyout", configdir / "mkosi.key",
+ "-out", configdir / "mkosi.crt",
"-days", str(args.genkey_valid_days),
"-subj", f"/CN={args.genkey_common_name}/",
"-nodes"
return Config.from_dict(context.finalize())
+def get_configdir(args: Args) -> Path:
+ """Allow locating all mkosi configuration in a mkosi/ subdirectory
+ instead of in the top-level directory of a git repository.
+ """
+ if (
+ args.directory is not None
+ and not (Path("mkosi.conf").exists() or Path("mkosi.tools.conf").exists())
+ and (Path("mkosi/mkosi.conf").is_file() or Path("mkosi/mkosi.tools.conf").exists())
+ ):
+ return Path.cwd() / "mkosi"
+
+ return Path.cwd()
+
+
def parse_config(
argv: Sequence[str] = (),
*,
context.config["files"] = []
- # Allow locating all mkosi configuration in a mkosi/ subdirectory instead of in the top-level directory
- # of a git repository.
- if (
- args.directory is not None
- and not (Path("mkosi.conf").exists() or Path("mkosi.tools.conf").exists())
- and (Path("mkosi/mkosi.conf").is_file() or Path("mkosi/mkosi.tools.conf").exists())
- ):
- configdir = Path.cwd() / "mkosi"
- else:
- configdir = Path.cwd()
+ configdir = get_configdir(args)
# Parse the global configuration unless the user explicitly asked us not to.
if args.directory is not None: