tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
anytype: add custom update script
Kira Bruneau
5 months ago
1de05583
8381f701
+63
2 changed files
expand all
collapse all
unified
split
pkgs
by-name
an
anytype
package.nix
update.sh
+2
pkgs/by-name/an/anytype/package.nix
···
114
114
})
115
115
];
116
116
117
117
+
passthru.updateScript = ./update.sh;
118
118
+
117
119
meta = {
118
120
description = "P2P note-taking tool";
119
121
homepage = "https://anytype.io/";
+61
pkgs/by-name/an/anytype/update.sh
···
1
1
+
#!/usr/bin/env nix-shell
2
2
+
#!nix-shell -i bash -p common-updater-scripts coreutils curl jq nix-update
3
3
+
4
4
+
set -euo pipefail
5
5
+
6
6
+
anytype_version=null
7
7
+
release_page=1
8
8
+
9
9
+
# Anytype often has many pre-releases between releases, which can span multiple pages
10
10
+
while [ "$anytype_version" = 'null' ]; do
11
11
+
readarray -t release < <(
12
12
+
curl "https://api.github.com/repos/anyproto/anytype-ts/releases?page=$release_page" \
13
13
+
${GITHUB_TOKEN:+--user ":$GITHUB_TOKEN"} \
14
14
+
--silent \
15
15
+
| jq --raw-output '
16
16
+
map(select(
17
17
+
(.prerelease == false) and
18
18
+
(.tag_name | test("alpha|beta") | not)
19
19
+
)) | .[0] | .tag_name, .created_at
20
20
+
'
21
21
+
)
22
22
+
anytype_version=${release[0]//v}
23
23
+
anytype_release_date=${release[1]}
24
24
+
release_page=$((release_page+1))
25
25
+
done
26
26
+
27
27
+
if [ "$UPDATE_NIX_OLD_VERSION" = "$anytype_version" ]; then
28
28
+
echo "Already up to date!"
29
29
+
exit 0
30
30
+
fi
31
31
+
32
32
+
# https://github.com/anyproto/anytype-ts/blob/v0.49.2/electron/hook/locale.js
33
33
+
locales_rev=$(
34
34
+
curl "https://api.github.com/repos/anyproto/l10n-anytype-ts/commits?until=$anytype_release_date&per_page=1" \
35
35
+
${GITHUB_TOKEN:+--user ":$GITHUB_TOKEN"} \
36
36
+
--silent \
37
37
+
| jq --raw-output '.[0].sha'
38
38
+
)
39
39
+
40
40
+
# https://github.com/anyproto/anytype-ts/blob/v0.49.2/update.sh
41
41
+
middleware_version=$(
42
42
+
curl "https://raw.githubusercontent.com/anyproto/anytype-ts/refs/tags/v$anytype_version/middleware.version" \
43
43
+
${GITHUB_TOKEN:+--user ":$GITHUB_TOKEN"} \
44
44
+
--silent
45
45
+
)
46
46
+
47
47
+
# https://github.com/anyproto/anytype-heart/blob/v0.42.4/makefiles/vars.mk#L8
48
48
+
tantivy_go_version=$(
49
49
+
curl "https://raw.githubusercontent.com/anyproto/anytype-heart/refs/tags/v$middleware_version/go.mod" \
50
50
+
${GITHUB_TOKEN:+--user ":$GITHUB_TOKEN"} \
51
51
+
--silent \
52
52
+
| grep github.com/anyproto/tantivy-go \
53
53
+
| cut --delimiter=' ' --field=2
54
54
+
)
55
55
+
56
56
+
tantivy_go_version=${tantivy_go_version//v}
57
57
+
58
58
+
nix-update tantivy-go --version "$tantivy_go_version" --generate-lockfile
59
59
+
nix-update anytype-heart --version "$middleware_version"
60
60
+
update-source-version anytype --ignore-same-version --source-key=locales --rev="$locales_rev"
61
61
+
nix-update anytype --version "$anytype_version"