tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
wire-desktop: Add updateScript
toonn
10 months ago
cf36c820
d7b5e1a9
+106
-2
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
wi
wire-desktop
package.nix
update.sh
+20
-2
pkgs/by-name/wi/wire-desktop/package.nix
···
71
hydraPlatforms = [ ];
72
};
73
0
0
0
0
0
0
0
0
74
linux = stdenv.mkDerivation rec {
75
-
inherit pname version meta;
0
0
0
0
0
76
77
src = fetchurl {
78
url = "https://wire-app.wire.com/linux/debian/pool/main/Wire-${version}_amd64.deb";
···
147
};
148
149
darwin = stdenv.mkDerivation {
150
-
inherit pname version meta;
0
0
0
0
0
151
152
src = fetchurl {
153
url = "https://github.com/wireapp/wire-desktop/releases/download/macos%2F${version}/Wire.pkg";
···
71
hydraPlatforms = [ ];
72
};
73
74
+
passthru.updateScript = {
75
+
command = [
76
+
./update.sh
77
+
./.
78
+
];
79
+
supportedFeatures = [ "commit" ];
80
+
};
81
+
82
linux = stdenv.mkDerivation rec {
83
+
inherit
84
+
pname
85
+
version
86
+
meta
87
+
passthru
88
+
;
89
90
src = fetchurl {
91
url = "https://wire-app.wire.com/linux/debian/pool/main/Wire-${version}_amd64.deb";
···
160
};
161
162
darwin = stdenv.mkDerivation {
163
+
inherit
164
+
pname
165
+
version
166
+
meta
167
+
passthru
168
+
;
169
170
src = fetchurl {
171
url = "https://github.com/wireapp/wire-desktop/releases/download/macos%2F${version}/Wire.pkg";
+86
pkgs/by-name/wi/wire-desktop/update.sh
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
#!/usr/bin/env nix-shell
2
+
#!nix-shell -i bash -p curl jq
3
+
4
+
set -e
5
+
6
+
cd $1
7
+
8
+
releases=$(curl -L \
9
+
-H "Accept: application/vnd.github+json" \
10
+
-H "X-GitHub-Api-Version: 2022-11-28" \
11
+
"https://api.github.com/repos/wireapp/wire-desktop/releases" \
12
+
)
13
+
14
+
latest=$(jq --argjson suffix '{ "linux": ".deb", "macos": ".pkg" }' \
15
+
--slurpfile versions versions.json '
16
+
def platform_latest(platform):
17
+
map(select(.tag_name | startswith(platform)))
18
+
| max_by(.tag_name)
19
+
| { version: .tag_name | ltrimstr(platform + "/")
20
+
, url: .assets.[]
21
+
| .browser_download_url
22
+
| select(endswith($suffix.[platform]))
23
+
};
24
+
25
+
. as $releases
26
+
| $versions.[] as $old
27
+
| $old
28
+
| with_entries( .key as $key
29
+
| { key: $key, value: $releases | platform_latest($key) }
30
+
| select(.value.version != $old.[$key].version)
31
+
)
32
+
' <<< "$releases"
33
+
)
34
+
35
+
urlHashes=$(
36
+
printf '{ '
37
+
function entries () {
38
+
local sep=''
39
+
for url in $(jq --raw-output '.[].url' <<< "$latest"); do
40
+
printf '%s"%s": "%s"\n' "$sep" "$url" \
41
+
"$(nix-hash --to-sri --type sha256 $(nix-prefetch-url $url))"
42
+
sep=', '
43
+
done
44
+
}
45
+
entries
46
+
printf '}'
47
+
)
48
+
49
+
commit=$(jq --arg versionJSON "$(printf '%s/versions.json' "$1")" \
50
+
--slurpfile versions versions.json '
51
+
$versions.[] as $old
52
+
| to_entries
53
+
| map("\(.key) \($old.[.key].version) -> \(.value.version)")
54
+
| join(", ")
55
+
| [ if . == ""
56
+
then empty
57
+
else { attrPath: "wire-desktop"
58
+
, oldVersion: "A"
59
+
, newVersion: "B"
60
+
, files: [ $versionJSON ]
61
+
, commitMessage: "wire-desktop: \(.)"
62
+
}
63
+
end
64
+
]
65
+
' <<< "$latest"
66
+
)
67
+
68
+
tempfile=$(mktemp)
69
+
70
+
updated=$(jq --argjson hashes "$urlHashes" --slurpfile versions versions.json '
71
+
$versions.[] as $old
72
+
| $old + map_values(with_entries(if .key == "url"
73
+
then { key: "hash"
74
+
, value: $hashes.[.value]
75
+
}
76
+
else .
77
+
end
78
+
)
79
+
)
80
+
' <<< "$latest" > $tempfile
81
+
)
82
+
83
+
mv $tempfile versions.json
84
+
85
+
printf '%s' "$commit"
86
+
exit 0