add script to download linux kernel configs from nix
authorJörg Thalheim <joerg@thalheim.io>
Thu, 2 Jan 2020 10:38:24 +0000 (10:38 +0000)
committerAlexander Popov <alex.popov@linux.com>
Thu, 26 Mar 2020 13:52:25 +0000 (16:52 +0300)
contrib/get-nix-kconfig.py [new file with mode: 0644]

diff --git a/contrib/get-nix-kconfig.py b/contrib/get-nix-kconfig.py
new file mode 100644 (file)
index 0000000..b69692c
--- /dev/null
@@ -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()