Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 33 lines 1.5 kB view raw
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p curl gnused jq nix-prefetch moreutils 3 4set -euo pipefail 5cd "$(dirname "$0")" 6 7nixpkgs="$(git rev-parse --show-toplevel)" 8 9oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).cudatext.version" | tr -d '"') 10version=$(curl -s https://api.github.com/repos/Alexey-T/CudaText/releases/latest | jq -r '.tag_name') 11 12if [[ $version == $oldVersion ]]; then 13 echo "Already at latest version $version" 14 exit 0 15fi 16echo "New version: $version" 17 18url="https://github.com/Alexey-T/CudaText/archive/refs/tags/${version}.tar.gz" 19hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url) 20sriHash=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $hash) 21 22sed -i "s#version = \".*\"#version = \"$version\"#" default.nix 23sed -i "s#hash = \".*\"#hash = \"$sriHash\"#" default.nix 24 25while IFS=$'\t' read repo owner rev; do 26 latest=$(curl -s https://api.github.com/repos/${owner}/${repo}/releases/latest | jq -r '.tag_name') 27 if [ "$latest" != "$rev" ]; then 28 url="https://github.com/${owner}/${repo}/archive/refs/tags/${latest}.tar.gz" 29 hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url) 30 sriHash=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 $hash) 31 jq ".\"${repo}\".rev = \"${latest}\" | .\"${repo}\".hash = \"${sriHash}\"" deps.json | sponge deps.json 32 fi 33done <<< $(jq -r 'to_entries[]|[.key,.value.owner,.value.rev]|@tsv' deps.json)