maintainers/scripts/kde: fix Rust update logic

K900 2ea454c9 ef13b0b2

+21 -17
+21 -17
maintainers/scripts/kde/generate-sources.py
··· 46 47 @click.command 48 @click.argument( 49 - "set", 50 type=click.Choice(["frameworks", "gear", "plasma"]), 51 required=True 52 ) ··· 71 type=str, 72 default=None, 73 ) 74 - def main(set: str, version: str, nixpkgs: pathlib.Path, sources_url: str | None): 75 root_dir = nixpkgs / "pkgs/kde" 76 - set_dir = root_dir / set 77 generated_dir = root_dir / "generated" 78 metadata = utils.KDERepoMetadata.from_json(generated_dir) 79 ··· 82 "frameworks": f"frameworks/{version}/", 83 "gear": f"release-service/{version}/src/", 84 "plasma": f"plasma/{version}/", 85 - }[set] 86 sources_url = f"https://download.kde.org/stable/{set_url}" 87 88 client = httpx.Client() ··· 91 bs = bs4.BeautifulSoup(sources.text, features="html.parser") 92 93 results = {} 94 for item in bs.select("tr")[3:]: 95 link = item.select_one("td:nth-child(2) a") 96 if not link: ··· 101 if project_name not in metadata.projects_by_name: 102 print(f"Warning: unknown tarball: {project_name}") 103 104 if version_and_ext.endswith(".sig"): 105 continue 106 ··· 126 pkg_dir = set_dir / project_name 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 - 140 if not pkg_file.exists(): 141 - print(f"Generated new package: {set}/{project_name}") 142 pkg_dir.mkdir(parents=True, exist_ok=True) 143 with pkg_file.open("w") as fd: 144 fd.write(LEAF_TEMPLATE.render(pname=project_name) + "\n") ··· 149 150 sources_dir = generated_dir / "sources" 151 sources_dir.mkdir(parents=True, exist_ok=True) 152 - with (sources_dir / f"{set}.json").open("w") as fd: 153 json.dump(results, fd, indent=2) 154 155 156 if __name__ == "__main__":
··· 46 47 @click.command 48 @click.argument( 49 + "pkgset", 50 type=click.Choice(["frameworks", "gear", "plasma"]), 51 required=True 52 ) ··· 71 type=str, 72 default=None, 73 ) 74 + def main(pkgset: str, version: str, nixpkgs: pathlib.Path, sources_url: str | None): 75 root_dir = nixpkgs / "pkgs/kde" 76 + set_dir = root_dir / pkgset 77 generated_dir = root_dir / "generated" 78 metadata = utils.KDERepoMetadata.from_json(generated_dir) 79 ··· 82 "frameworks": f"frameworks/{version}/", 83 "gear": f"release-service/{version}/src/", 84 "plasma": f"plasma/{version}/", 85 + }[pkgset] 86 sources_url = f"https://download.kde.org/stable/{set_url}" 87 88 client = httpx.Client() ··· 91 bs = bs4.BeautifulSoup(sources.text, features="html.parser") 92 93 results = {} 94 + projects_to_update_rust = set() 95 for item in bs.select("tr")[3:]: 96 link = item.select_one("td:nth-child(2) a") 97 if not link: ··· 102 if project_name not in metadata.projects_by_name: 103 print(f"Warning: unknown tarball: {project_name}") 104 105 + if project_name in PROJECTS_WITH_RUST: 106 + projects_to_update_rust.add(project_name) 107 + 108 if version_and_ext.endswith(".sig"): 109 continue 110 ··· 130 pkg_dir = set_dir / project_name 131 pkg_file = pkg_dir / "default.nix" 132 133 if not pkg_file.exists(): 134 + print(f"Generated new package: {pkgset}/{project_name}") 135 pkg_dir.mkdir(parents=True, exist_ok=True) 136 with pkg_file.open("w") as fd: 137 fd.write(LEAF_TEMPLATE.render(pname=project_name) + "\n") ··· 142 143 sources_dir = generated_dir / "sources" 144 sources_dir.mkdir(parents=True, exist_ok=True) 145 + with (sources_dir / f"{pkgset}.json").open("w") as fd: 146 json.dump(results, fd, indent=2) 147 + 148 + for project_name in projects_to_update_rust: 149 + print(f"Updating cargoDeps hash for {pkgset}/{project_name}...") 150 + subprocess.run([ 151 + "nix-update", 152 + f"kdePackages.{project_name}", 153 + "--version", 154 + "skip", 155 + "--override-filename", 156 + pkg_file 157 + ]) 158 159 160 if __name__ == "__main__":