X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=contrib%2Fget-nix-kconfig.py;fp=contrib%2Fget-nix-kconfig.py;h=b69692c8b7aec589e3d4c1cb3cbd2dcace079490;hb=b7c4e0c76c78ebffdf33a5f2bfb597a8fc231347;hp=0000000000000000000000000000000000000000;hpb=953f4621442c7f10cd8550997fc5356cbe239152;p=kconfig-hardened-check.git diff --git a/contrib/get-nix-kconfig.py b/contrib/get-nix-kconfig.py new file mode 100644 index 0000000..b69692c --- /dev/null +++ b/contrib/get-nix-kconfig.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +import json +import os +import shutil +import subprocess +import sys +from tempfile import TemporaryDirectory + + +def main() -> None: + proc = subprocess.run( + ["nix", "search", "-u", "--json", "^nixpkgs.linux_"], capture_output=True + ) + data = json.loads(proc.stdout) + with TemporaryDirectory() as temp: + for pkg in data.keys(): + symlink = os.path.join(temp, pkg) + res = subprocess.run(["nix", "build", f"{pkg}.configfile", "-o", symlink]) + if res.returncode != 0: + print(f"failed to get configuration for {pkg}", file=sys.stderr) + continue + name = f"{pkg.replace('.', '-')}-config" + with open(name, "w") as dst, open(symlink) as src: + shutil.copyfileobj(src, dst) + + +if __name__ == "__main__": + main()