tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
maintainers/scripts/kde: support updating cargoDeps
K900
10 months ago
6045aeb8
a510ad1b
+22
-4
1 changed file
expand all
collapse all
unified
split
maintainers
scripts
kde
generate-sources.py
+22
-4
maintainers/scripts/kde/generate-sources.py
···
1
1
#!/usr/bin/env nix-shell
2
2
-
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])"
2
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
7
-
from typing import Optional
7
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
33
-
'''.strip());
33
33
+
'''.strip())
34
34
+
35
35
+
PROJECTS_WITH_RUST = {
36
36
+
"akonadi-search",
37
37
+
"angelfish",
38
38
+
"kdepim-addons",
39
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
68
-
def main(set: str, version: str, nixpkgs: pathlib.Path, sources_url: Optional[str]):
74
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
128
+
129
129
+
if project_name in PROJECTS_WITH_RUST:
130
130
+
print(f"Updating cargoDeps hash for {set}/{project_name}...")
131
131
+
subprocess.run([
132
132
+
"nix-update",
133
133
+
f"kdePackages.{project_name}",
134
134
+
"--version",
135
135
+
"skip",
136
136
+
"--override-filename",
137
137
+
pkg_file
138
138
+
])
139
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)