maintainers/scripts/kde: support updating cargoDeps

K900 6045aeb8 a510ad1b

+22 -4
+22 -4
maintainers/scripts/kde/generate-sources.py
··· 1 1 #!/usr/bin/env nix-shell 2 - #!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])" 2 + #!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])" nix-update 3 3 import base64 4 4 import binascii 5 5 import json 6 6 import pathlib 7 - from typing import Optional 7 + import subprocess 8 8 from urllib.parse import urljoin, urlparse 9 9 10 10 import bs4 ··· 30 30 {{ p }} = callPackage ./{{ p }} { }; 31 31 {%- endfor %} 32 32 } 33 - '''.strip()); 33 + '''.strip()) 34 + 35 + PROJECTS_WITH_RUST = { 36 + "akonadi-search", 37 + "angelfish", 38 + "kdepim-addons", 39 + } 34 40 35 41 def to_sri(hash): 36 42 raw = binascii.unhexlify(hash) ··· 65 71 type=str, 66 72 default=None, 67 73 ) 68 - def main(set: str, version: str, nixpkgs: pathlib.Path, sources_url: Optional[str]): 74 + def main(set: str, version: str, nixpkgs: pathlib.Path, sources_url: str | None): 69 75 root_dir = nixpkgs / "pkgs/kde" 70 76 set_dir = root_dir / set 71 77 generated_dir = root_dir / "generated" ··· 119 125 120 126 pkg_dir = set_dir / project_name 121 127 pkg_file = pkg_dir / "default.nix" 128 + 129 + if project_name in PROJECTS_WITH_RUST: 130 + print(f"Updating cargoDeps hash for {set}/{project_name}...") 131 + subprocess.run([ 132 + "nix-update", 133 + f"kdePackages.{project_name}", 134 + "--version", 135 + "skip", 136 + "--override-filename", 137 + pkg_file 138 + ]) 139 + 122 140 if not pkg_file.exists(): 123 141 print(f"Generated new package: {set}/{project_name}") 124 142 pkg_dir.mkdir(parents=True, exist_ok=True)