#!/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()