tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
maintainers/scripts/kde: fix Rust update logic
K900
9 months ago
2ea454c9
ef13b0b2
+21
-17
1 changed file
expand all
collapse all
unified
split
maintainers
scripts
kde
generate-sources.py
+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 = {}
0
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
0
0
0
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)
0
0
0
0
0
0
0
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
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__":