Build tooling around nix-snapshotter
This commit is contained in:
parent
e9899c0d0f
commit
04439a9ee5
6 changed files with 39 additions and 43 deletions
|
@ -1,4 +1,4 @@
|
|||
{ flake-utils, pkgs, ... }: flake-utils.lib.eachDefaultSystem (system:
|
||||
{ myLib, flake-utils, pkgs, ... }: flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
createScript = { name, runtimeInputs, scriptPath, extraWrapperFlags ? "", ... }:
|
||||
let
|
||||
|
@ -28,21 +28,9 @@ in
|
|||
|
||||
packages.prefetch-container-images =
|
||||
let
|
||||
images = {
|
||||
cyberchef = {
|
||||
name = "mpepping/cyberchef";
|
||||
tag = "latest";
|
||||
};
|
||||
|
||||
radicale = {
|
||||
name = "tomsquest/docker-radicale";
|
||||
tag = "3.2.2.0";
|
||||
};
|
||||
};
|
||||
|
||||
imagesJSON = builtins.toFile "images.json" (builtins.toJSON images);
|
||||
imagesJSON = builtins.toFile "images.json" (builtins.toJSON myLib.globals.images);
|
||||
in
|
||||
pkgs.writers.writePython3Bin "prefetch-container-images"
|
||||
pkgs.writers.writePython3Bin "prefetch-container-images.py"
|
||||
{ } ''
|
||||
import json
|
||||
import subprocess
|
||||
|
@ -59,11 +47,13 @@ in
|
|||
with open(images_file_name, 'r') as file:
|
||||
data = json.load(file)
|
||||
|
||||
for image_name, image in data.items():
|
||||
name = image["name"]
|
||||
tag = image["tag"]
|
||||
for image_name, image_ref in data.items():
|
||||
[name, tag] = image_ref.split(":", maxsplit=1)
|
||||
print(f"Prefetching image {image_ref}", file=sys.stderr)
|
||||
|
||||
print(f"Prefetching image {name}:{tag}", file=sys.stderr)
|
||||
digest = ""
|
||||
if "@" in tag:
|
||||
[tag, digest] = tag.split("@", maxsplit=1)
|
||||
|
||||
prefetch_args = [
|
||||
prefetch_docker_cmd,
|
||||
|
@ -74,6 +64,10 @@ in
|
|||
"--json",
|
||||
"--quiet"
|
||||
]
|
||||
|
||||
if digest:
|
||||
prefetch_args.extend(["--image-digest", digest])
|
||||
|
||||
result = subprocess.run(prefetch_args,
|
||||
check=True,
|
||||
capture_output=True,
|
||||
|
|
Reference in a new issue