Files
scale-build/scripts/build_manifest.py
2020-05-22 19:32:09 +02:00

34 lines
1.0 KiB
Python

# -*- coding=utf-8 -*-
from datetime import datetime
import glob
import json
import os
import shutil
import subprocess
import sys
if __name__ == "__main__":
output, rootfs, version = sys.argv[1:]
shutil.copytree(
os.path.join(os.path.dirname(__file__), "../truenas_install"),
os.path.join(output, "truenas_install"),
)
checksums = {}
for root, dirs, files in os.walk(output):
for file in files:
abspath = os.path.join(root, file)
checksums[os.path.relpath(abspath, output)] = subprocess.run(
["sha1sum", abspath],
check=True, stdout=subprocess.PIPE, encoding="utf-8", errors="ignore",
).stdout.split()[0]
with open(os.path.join(output, "manifest.json"), "w") as f:
f.write(json.dumps({
"date": datetime.utcnow().isoformat(),
"version": version,
"checksums": checksums,
"kernel_version": glob.glob(os.path.join(rootfs, "boot/vmlinuz-*"))[0].split("/")[-1][len("vmlinuz-"):],
}))