Skip to content

Commit cb72902

Browse files
DaanDeMeyerbehrmann
authored andcommitted
Use Path more in initrd.py and addon.py
1 parent 70b7b37 commit cb72902

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

mkosi/addon.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ def main() -> None:
7171
]
7272

7373
cmdline += include_system_config("mkosi-addon")
74-
cmdline += process_crypttab(staging_dir)
74+
cmdline += process_crypttab(Path(staging_dir))
7575

7676
if Path("/etc/kernel/cmdline").exists():
7777
cmdline += ["--kernel-command-line", Path("/etc/kernel/cmdline").read_text()]
7878

7979
run(cmdline, stdin=sys.stdin, stdout=sys.stdout)
8080

81-
initrd_finalize(staging_dir, args.output, args.output_dir)
81+
initrd_finalize(Path(staging_dir), args.output, args.output_dir)
8282

8383

8484
if __name__ == "__main__":

mkosi/initrd.py

+12-11
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def create_parser() -> argparse.ArgumentParser:
144144
return parser
145145

146146

147-
def process_crypttab(staging_dir: str) -> list[str]:
147+
def process_crypttab(staging_dir: Path) -> list[str]:
148148
cmdline = []
149149

150150
# Generate crypttab with all the x-initrd.attach entries
@@ -160,10 +160,10 @@ def process_crypttab(staging_dir: str) -> list[str]:
160160
)
161161
]
162162
if crypttab:
163-
with (Path(staging_dir) / "crypttab").open("w") as f:
163+
with (staging_dir / "crypttab").open("w") as f:
164164
f.write("# Automatically generated by mkosi-initrd\n")
165165
f.write("\n".join(crypttab))
166-
cmdline += ["--extra-tree", f"{staging_dir}/crypttab:/etc/crypttab"]
166+
cmdline += ["--extra-tree", f"{staging_dir / 'crypttab'}:/etc/crypttab"]
167167
except PermissionError:
168168
logging.warning("Permission denied to access /etc/crypttab, the initrd may be unbootable")
169169

@@ -180,18 +180,18 @@ def add_raid_config() -> list[str]:
180180
return cmdline
181181

182182

183-
def initrd_finalize(staging_dir: str, output: str, output_dir: str) -> None:
183+
def initrd_finalize(staging_dir: Path, output: str, output_dir: Optional[Path]) -> None:
184184
if output_dir:
185185
with umask(~0o700) if os.getuid() == 0 else cast(umask, contextlib.nullcontext()):
186186
Path(output_dir).mkdir(parents=True, exist_ok=True)
187187
else:
188-
output_dir = os.fspath(Path.cwd())
188+
output_dir = Path.cwd()
189189

190-
log_notice(f"Copying {staging_dir}/{output} to {output_dir}/{output}")
190+
log_notice(f"Copying {staging_dir / output} to {output_dir / output}")
191191
# mkosi symlinks the expected output image, so dereference it
192192
copy_tree(
193-
Path(f"{staging_dir}/{output}").resolve(),
194-
Path(f"{output_dir}/{output}"),
193+
(staging_dir / output).resolve(),
194+
output_dir / output,
195195
)
196196

197197

@@ -208,7 +208,8 @@ def initrd_common_args(parser: argparse.ArgumentParser) -> None:
208208
"--output-dir",
209209
metavar="DIR",
210210
help="Output directory",
211-
default="",
211+
default=None,
212+
type=Path,
212213
)
213214
parser.add_argument(
214215
"--debug",
@@ -349,7 +350,7 @@ def main() -> None:
349350

350351
cmdline += [f"--sandbox-tree={sandbox_tree}"]
351352

352-
cmdline += process_crypttab(staging_dir)
353+
cmdline += process_crypttab(Path(staging_dir))
353354

354355
if Path("/etc/kernel/cmdline").exists():
355356
cmdline += ["--kernel-command-line", Path("/etc/kernel/cmdline").read_text()]
@@ -364,7 +365,7 @@ def main() -> None:
364365
env=os.environ | ({"MKOSI_DNF": dnf.resolve().name} if (dnf := find_binary("dnf")) else {}),
365366
)
366367

367-
initrd_finalize(staging_dir, args.output, args.output_dir)
368+
initrd_finalize(Path(staging_dir), args.output, args.output_dir)
368369

369370

370371
if __name__ == "__main__":

0 commit comments

Comments
 (0)