diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/languagemachines/update | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/languagemachines/update')
-rwxr-xr-x | nixpkgs/pkgs/development/libraries/languagemachines/update | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/languagemachines/update b/nixpkgs/pkgs/development/libraries/languagemachines/update new file mode 100755 index 000000000000..3189637df746 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/languagemachines/update @@ -0,0 +1,79 @@ +#!/usr/bin/env nix-shell +#!nix-shell --packages curl +#!nix-shell --packages jq +#!nix-shell --packages parallel +#!nix-shell -i bash + +# Exit immediately if a command exits with a non-zero status. +# Exit when a producer fails in a pipe +# Treat undefined variable references as errors +set -e -o pipefail -u + +# Check if working directory is (probably) right +test "./update" = $0 || { + echo "The working directory ought to be the same is the update script location. Please invoke as ./update" 1>&2 + exit 1 +} + +# Create temporary directory with automatic cleanup +readonly MY_TMP="$(mktemp -d)" +cleanup () { + rm -rf "$MY_TMP" +} +trap cleanup EXIT + +# stdout: file containing release info and a convenient placeholder +# for the sha256 attribute +getRelease () { + local owner="$1" + local repo="$2" + local out="$MY_TMP/$owner--$repo-release" + curl -fSs https://api.github.com/repos/"$owner"/"$repo"/releases/latest \ + | jq '{ version: .name, url: .tarball_url, sha256: "__SHA256__" }' \ + > "$out" + echo "$out" +} + +# 'getters' for the release info file + +# stdout: unquoted tarball url +releaseUrl () { + local file="$1" + jq -r '.url' <"$file" +} + +# stdout: unquoted version +releaseVersion () { + local file="$1" + jq -r '.version' <"$file" +} + +# Fetch release tarball and compute hash +# stdout: base32 sha256 to be used in fetchurl +getReleaseHash () { + local file="$1" + local name="$2" + nix-prefetch-url "$(releaseUrl "$file")" --name "$name-$(releaseVersion "$file").tar.gz" +} + +# Write a release info file to release-info/$owner-$repo.json +updateRelease () { + local owner="$1" + local repo="$2" + local r="$(getRelease "$owner" "$repo")" + local hash="$(getReleaseHash "$r" "$repo")" + sed \ + -e s/__SHA256__/"$hash"/\ + <"$r" \ + >"release-info/$owner-$repo.json" +} + +updateRelease LanguageMachines frogdata +updateRelease LanguageMachines frog +updateRelease LanguageMachines libfolia +updateRelease LanguageMachines mbt +updateRelease LanguageMachines ticcutils +updateRelease LanguageMachines timbl +updateRelease LanguageMachines timblserver +updateRelease LanguageMachines ucto +updateRelease LanguageMachines uctodata |