|
| 1 | +#!/usr/bin/env bash |
| 2 | +set -euo pipefail |
| 3 | + |
| 4 | +FLAKE_REF="github:staticweb-io/wordpress-flake" |
| 5 | +SYSTEM=$(nix eval --impure --expr builtins.currentSystem --raw) |
| 6 | + |
| 7 | +echo "Getting wordpress_* packages from $FLAKE_REF for system $SYSTEM..." |
| 8 | + |
| 9 | +# Sort wordpress packages by version descending |
| 10 | +wordpress_packages=$(nix eval --json --impure \ |
| 11 | + --expr "builtins.attrNames (builtins.getFlake \"$FLAKE_REF\").packages.\"$SYSTEM\"" \ |
| 12 | + | jq -r '.[]' | grep '^wordpress_' \ |
| 13 | + | sort -t_ -k2,2nr -k3,3nr -k4,4nr) |
| 14 | + |
| 15 | +if [[ -z "$wordpress_packages" ]]; then |
| 16 | + echo "No wordpress_* packages found." |
| 17 | + exit 1 |
| 18 | +fi |
| 19 | +last_success="" |
| 20 | +first_pkg="" |
| 21 | +for pkg in $wordpress_packages; do |
| 22 | + [[ -z "$first_pkg" ]] && first_pkg="$pkg" |
| 23 | + |
| 24 | + echo -e "\n➡️ Running check for WORDPRESS_PACKAGE=$pkg" |
| 25 | + if WORDPRESS_PACKAGE="$pkg" nix flake check --impure ./dev; then |
| 26 | + last_success="$pkg" |
| 27 | + else |
| 28 | + echo "❌ Check failed for $pkg" |
| 29 | + break |
| 30 | + fi |
| 31 | +done |
| 32 | + |
| 33 | +if [[ -n "$last_success" ]]; then |
| 34 | + echo -e "\n✅ Last successful version: $last_success" |
| 35 | + |
| 36 | + last_updated=$(git log -1 --format="%ci") |
| 37 | + |
| 38 | + # Extract version from first_pkg (e.g., wordpress_6_8_1 → 6.8.1) |
| 39 | + requires="${last_success#wordpress_}" |
| 40 | + requires="${requires//_/.}" |
| 41 | + requires="${requires%.*}" # Remove the patch version |
| 42 | + tested="${first_pkg#wordpress_}" |
| 43 | + tested="${tested//_/.}" |
| 44 | + tested="${tested%.*}" |
| 45 | + |
| 46 | + # Update using jq |
| 47 | + TMPUPDATE=$(mktemp) |
| 48 | + jq --arg requires "$requires" --arg tested "$tested" --arg last_updated "$last_updated" \ |
| 49 | + '.requires = $requires | .tested = $tested | .last_updated = $last_updated' \ |
| 50 | + update.json > "$TMPUPDATE" && mv "$TMPUPDATE" update.json |
| 51 | +else |
| 52 | + echo -e "\n❌ No successful checks." |
| 53 | +fi |
0 commit comments