lol
at 23.11-beta 43 lines 1.3 kB view raw
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p nix wget nix-prefetch-github jq prefetch-npm-deps nodejs 3 4# shellcheck shell=bash 5 6if [ -n "$GITHUB_TOKEN" ]; then 7 TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN") 8fi 9 10if [[ $# -gt 1 || $1 == -* ]]; then 11 echo "Regenerates packaging data for the pnpm-lock-export packages." 12 echo "Usage: $0 [git release tag]" 13 exit 1 14fi 15 16set -x 17 18cd "$(dirname "$0")" 19rev="$1" 20 21set -euo pipefail 22 23if [ -z "$rev" ]; then 24 rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/adamcstephens/pnpm-lock-export/commits?per_page=1" | jq -r '.[0].sha')" 25fi 26 27# pnpm-lock-export repository 28src_hash=$(nix-prefetch-github adamcstephens pnpm-lock-export --rev "${rev}" | jq -r .hash) 29 30# Front-end dependencies 31upstream_src="https://raw.githubusercontent.com/adamcstephens/pnpm-lock-export/${rev}" 32 33trap 'rm -rf package.json' EXIT 34wget "${TOKEN_ARGS[@]}" "$upstream_src/package.json" 35npm install --package-lock-only 36deps_hash=$(prefetch-npm-deps package-lock.json) 37 38# Use friendlier hashes 39deps_hash=$(nix hash to-sri --type sha256 "$deps_hash") 40 41sed -i -E -e "s#rev = \".*\"#rev = \"$rev\"#" default.nix 42sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" default.nix 43sed -i -E -e "s#npmDepsHash = \".*\"#npmDepsHash = \"$deps_hash\"#" default.nix