diff options
author | Vincent Haupert <vincent@yaxi.tech> | 2023-08-03 10:44:35 +0200 |
---|---|---|
committer | Vincent Haupert <vincent@yaxi.tech> | 2023-08-03 11:46:35 +0200 |
commit | 5fd478506d4867e52311d63cb56dc5e01c0f46ad (patch) | |
tree | 3d06cf7025debbce628392e3edd8a7804e137a8f /nixos | |
parent | d85f641287e4f632e9ee3708f0af6d8a41380e36 (diff) |
nixos/image: use stable target dir for amended repart definitions
Output the amended repart definitions to a well-known directory in $TMPDIR instead of using a temporary directory with a random directory name. The output file `repart-output.json` also contains the full path to the repart definition file used to create the partition. As `amend-repart-definitions.py` uses `tempfile.mkdtemp`, this introduces an impurity: ```json { "type" : "root-x86-64", "label" : "rootfs", "uuid" : "f2fa2e49-e443-45d2-a2e2-c3754cab6363", "file" : "/build/tmppjo7kv5o/rootfs.conf", "node" : "image.raw2", "offset" : 135266304, "old_size" : 0, "raw_size" : 1651101696, "old_padding" : 0, "raw_padding" : 0, "activity" : "create", } ``` This commit changes the parent directory of the amended repart definitions to `/build/amended-repart.d/`.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/image/amend-repart-definitions.py | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/nixos/modules/image/amend-repart-definitions.py b/nixos/modules/image/amend-repart-definitions.py index e50ed6fd39a79..52f10303eb5ea 100644 --- a/nixos/modules/image/amend-repart-definitions.py +++ b/nixos/modules/image/amend-repart-definitions.py @@ -15,8 +15,6 @@ files using the same mechanism. import json import sys import shutil -import os -import tempfile from pathlib import Path @@ -92,12 +90,13 @@ def main() -> None: print("Partition config is empty.") sys.exit(1) - temp = tempfile.mkdtemp() - shutil.copytree(repart_definitions, temp, dirs_exist_ok=True) + target_dir = Path("amended-repart.d") + target_dir.mkdir() + shutil.copytree(repart_definitions, target_dir, dirs_exist_ok=True) for name, config in partition_config.items(): - definition = Path(f"{temp}/{name}.conf") - os.chmod(definition, 0o644) + definition = target_dir.joinpath(f"{name}.conf") + definition.chmod(0o644) contents = config.get("contents") add_contents_to_definition(definition, contents) @@ -106,7 +105,7 @@ def main() -> None: strip_nix_store_prefix = config.get("stripStorePaths") add_closure_to_definition(definition, closure, strip_nix_store_prefix) - print(temp) + print(target_dir.absolute()) if __name__ == "__main__": |