Add defconfigs for v5.10
[kconfig-hardened-check.git] / contrib / get-nix-kconfig.py
1 #! /usr/bin/env nix-shell
2 #! nix-shell -i python3 -p python3
3
4 import json
5 import os
6 import shutil
7 import subprocess
8 import sys
9 from tempfile import TemporaryDirectory
10
11
12 def main() -> None:
13     proc = subprocess.run(
14         ["nix", "search", "-u", "--json", "^nixpkgs.linux_"], capture_output=True
15     )
16     data = json.loads(proc.stdout)
17     with TemporaryDirectory() as temp:
18         for pkg in data.keys():
19             symlink = os.path.join(temp, pkg)
20             res = subprocess.run(["nix", "build", f"{pkg}.configfile", "-o", symlink])
21             if res.returncode != 0:
22                 print(f"failed to get configuration for {pkg}", file=sys.stderr)
23                 continue
24             name = f"{pkg.replace('.', '-')}-config"
25             with open(name, "w") as dst, open(symlink) as src:
26                 shutil.copyfileobj(src, dst)
27
28
29 if __name__ == "__main__":
30     main()