)
from mkosi.sysupdate import run_sysupdate
from mkosi.tree import copy_tree, make_tree, move_tree, rmtree
-from mkosi.user import INVOKING_USER
+from mkosi.user import INVOKING_USER, become_root_cmd
from mkosi.util import (
PathString,
current_home_dir,
network=True,
relaxed=True,
options=["--same-dir"],
- setup=["run0"] if os.getuid() != 0 else [],
+ setup=become_root_cmd(),
),
)
network=True,
devices=config.output_format == OutputFormat.disk,
relaxed=True,
- setup=["run0"] if need_root else [],
+ setup=become_root_cmd() if need_root else [],
),
)
from mkosi.config import Args, Config, OutputFormat
from mkosi.log import complete_step, die
from mkosi.run import run
+from mkosi.user import become_root_cmd
def run_burn(args: Args, config: Config) -> None:
network=True,
relaxed=True,
options=["--same-dir"],
- setup=["run0"] if os.getuid() != 0 else [],
+ setup=become_root_cmd(),
),
)
from mkosi.config import Args, ArtifactOutput, Config
from mkosi.log import die
from mkosi.run import run
+from mkosi.user import become_root_cmd
from mkosi.util import PathString
devices=True,
network=True,
relaxed=True,
- setup=["run0"] if os.getuid() != 0 else [],
+ setup=become_root_cmd(),
options=[
*(["--bind", "/boot", "/boot"] if Path("/boot").exists() else []),
*(["--bind", "/efi", "/efi"] if Path("/efi").exists() else []),
from pathlib import Path
from mkosi.log import die
-from mkosi.run import spawn
+from mkosi.run import find_binary, spawn
from mkosi.sandbox import CLONE_NEWUSER, unshare
from mkosi.util import flock, parents_below
] # fmt: skip
return [str(x) for x in cmd]
+
+
+def become_root_cmd() -> list[str]:
+ if os.getuid() == 0:
+ return []
+
+ return ["run0"] if find_binary("run0") else ["sudo"]