|
1 | 1 | #!/usr/bin/env nix-shell |
2 | | -#!nix-shell -i bash -p common-updater-scripts gnused jq nix-prefetch |
3 | | -set -eou pipefail |
| 2 | +#!nix-shell -i bash -p curl gnused gawk nix-prefetch common-updater-scripts jq |
| 3 | + |
| 4 | +set -euo pipefail |
4 | 5 |
|
5 | 6 | ROOT="$(dirname "$(readlink -f "$0")")" |
| 7 | +NIX_DRV="$ROOT/package.nix" |
| 8 | +if [ ! -f "$NIX_DRV" ]; then |
| 9 | + echo "ERROR: cannot find package.nix in $ROOT" |
| 10 | + exit 1 |
| 11 | +fi |
6 | 12 |
|
7 | | -CURRENT_VERSION=$(nix-instantiate --eval --strict --json -A tailwindcss.version . | jq -r .) |
8 | | -LATEST_VERSION=$(list-git-tags --url=https://github.com/tailwindlabs/tailwindcss | rg 'v4[0-9\.]*$' | sed -e 's/^v//' | sort -V | tail -n 1) |
9 | | -sed -i "s/version = \".*\"/version = \"${LATEST_VERSION}\"/" "$ROOT/package.nix" |
| 13 | +fetch_arch() { |
| 14 | + VER="$1"; ARCH="$2" |
| 15 | + URL="https://github.com/tailwindlabs/tailwindcss/releases/download/v${VER}/tailwindcss-${ARCH}" |
| 16 | + nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")" |
| 17 | +} |
10 | 18 |
|
11 | | -if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then |
12 | | - echo "tailwindcss_4 already at latest version $CURRENT_VERSION, exiting" |
13 | | - exit 0 |
14 | | -fi |
| 19 | +replace_hash() { |
| 20 | + sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV" |
| 21 | +} |
15 | 22 |
|
16 | | -function updatePlatform() { |
17 | | - NIXPLAT=$1 |
18 | | - TAILWINDPLAT=$2 |
19 | | - echo "Updating tailwindcss_4 for $NIXPLAT" |
| 23 | +VER=$(list-git-tags --url=https://github.com/tailwindlabs/tailwindcss | rg 'v4[0-9\.]*$' | sed -e 's/^v//' | sort -V | tail -n 1) |
20 | 24 |
|
21 | | - URL="https://github.com/tailwindlabs/tailwindcss/releases/download/v${LATEST_VERSION}/tailwindcss-${TAILWINDPLAT}" |
22 | | - HASH=$(nix hash to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")") |
| 25 | +LINUX_X64_HASH=$(fetch_arch "$VER" "linux-x64") |
| 26 | +LINUX_AARCH64_HASH=$(fetch_arch "$VER" "linux-arm64") |
| 27 | +DARWIN_X64_HASH=$(fetch_arch "$VER" "macos-x64") |
| 28 | +DARWIN_AARCH64_HASH=$(fetch_arch "$VER" "macos-arm64") |
23 | 29 |
|
24 | | - sed -i "s,$NIXPLAT = \"sha256.*\",$NIXPLAT = \"${HASH}\"," "$ROOT/package.nix" |
25 | | -} |
| 30 | +sed -i "s/version = \".*\"/version = \"$VER\"/" "$NIX_DRV" |
26 | 31 |
|
27 | | -updatePlatform aarch64-darwin macos-arm64 |
28 | | -updatePlatform aarch64-linux linux-arm64 |
29 | | -updatePlatform x86_64-darwin macos-x64 |
30 | | -updatePlatform x86_64-linux linux-x64 |
| 32 | +replace_hash "x86_64-linux" "$LINUX_X64_HASH" |
| 33 | +replace_hash "aarch64-linux" "$LINUX_AARCH64_HASH" |
| 34 | +replace_hash "x86_64-darwin" "$DARWIN_X64_HASH" |
| 35 | +replace_hash "aarch64-darwin" "$DARWIN_AARCH64_HASH" |
0 commit comments