Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / languagemachines / update
blob3189637df7463e93b8b9454159fd83038c7c6df7
1 #!/usr/bin/env nix-shell
2 #!nix-shell --packages curl
3 #!nix-shell --packages jq
4 #!nix-shell --packages parallel
5 #!nix-shell -i bash
7 # Exit immediately if a command exits with a non-zero status.
8 # Exit when a producer fails in a pipe
9 # Treat undefined variable references as errors
10 set -e -o pipefail -u
12 # Check if working directory is (probably) right
13 test "./update" = $0 || {
14     echo "The working directory ought to be the same is the update script location. Please invoke as ./update" 1>&2
15     exit 1
18 # Create temporary directory with automatic cleanup
19 readonly MY_TMP="$(mktemp -d)"
20 cleanup () {
21     rm -rf "$MY_TMP"
23 trap cleanup EXIT
25 # stdout: file containing release info and a convenient placeholder
26 # for the sha256 attribute
27 getRelease () {
28     local owner="$1"
29     local repo="$2"
30     local out="$MY_TMP/$owner--$repo-release"
31     curl -fSs https://api.github.com/repos/"$owner"/"$repo"/releases/latest \
32         | jq '{ version: .name, url: .tarball_url, sha256: "__SHA256__" }' \
33              > "$out"
34     echo "$out"
37 # 'getters' for the release info file
39 # stdout: unquoted tarball url
40 releaseUrl () {
41     local file="$1"
42     jq -r '.url' <"$file"
45 # stdout: unquoted version
46 releaseVersion () {
47     local file="$1"
48     jq -r '.version' <"$file"
51 # Fetch release tarball and compute hash
52 # stdout: base32 sha256 to be used in fetchurl
53 getReleaseHash () {
54     local file="$1"
55     local name="$2"
56     nix-prefetch-url "$(releaseUrl "$file")" --name "$name-$(releaseVersion "$file").tar.gz"
59 # Write a release info file to release-info/$owner-$repo.json
60 updateRelease () {
61     local owner="$1"
62     local repo="$2"
63     local r="$(getRelease "$owner" "$repo")"
64     local hash="$(getReleaseHash "$r" "$repo")"
65     sed \
66       -e s/__SHA256__/"$hash"/\
67       <"$r" \
68       >"release-info/$owner-$repo.json"
71 updateRelease LanguageMachines frogdata
72 updateRelease LanguageMachines frog
73 updateRelease LanguageMachines libfolia
74 updateRelease LanguageMachines mbt
75 updateRelease LanguageMachines ticcutils
76 updateRelease LanguageMachines timbl
77 updateRelease LanguageMachines timblserver
78 updateRelease LanguageMachines ucto
79 updateRelease LanguageMachines uctodata