File: update-sha.sh

package info (click to toggle)
htmx 4.0.0-alpha8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 191,048 kB
  • sloc: javascript: 29,775; sh: 44; makefile: 7
file content (37 lines) | stat: -rwxr-xr-x 1,370 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash

DOCS=www/src/content/docs/01-get-started/01-installation.md

# Calculate SHAs
MINIFIED_SHA=$(cat dist/htmx.min.js | openssl dgst -sha384 -binary | openssl base64 -A)
FULL_SHA=$(cat dist/htmx.js | openssl dgst -sha384 -binary | openssl base64 -A)
ESM_MIN_SHA=$(cat dist/htmx.esm.min.js | openssl dgst -sha384 -binary | openssl base64 -A)
ESM_SHA=$(cat dist/htmx.esm.js | openssl dgst -sha384 -binary | openssl base64 -A)

echo "Updating $DOCS with new SHAs..."
echo "htmx.min.js:     sha384-$MINIFIED_SHA"
echo "htmx.js:         sha384-$FULL_SHA"
echo "htmx.esm.min.js: sha384-$ESM_MIN_SHA"
echo "htmx.esm.js:     sha384-$ESM_SHA"

awk -v minified="sha384-$MINIFIED_SHA" -v full="sha384-$FULL_SHA" \
    -v esm_min="sha384-$ESM_MIN_SHA" -v esm="sha384-$ESM_SHA" '
/integrity="sha384-[^"]*"/ && /htmx\.esm\.min\.js/ {
    sub(/sha384-[^"]*/, esm_min)
}
/integrity="sha384-[^"]*"/ && /htmx\.esm\.js/ && !/htmx\.esm\.min\.js/ {
    sub(/sha384-[^"]*/, esm)
}
/integrity="sha384-[^"]*"/ && /htmx\.min\.js/ && !/htmx\.esm/ {
    sub(/sha384-[^"]*/, minified)
}
/integrity="sha384-[^"]*"/ && /htmx\.js/ && !/htmx\.min\.js/ && !/htmx\.esm/ {
    sub(/sha384-[^"]*/, full)
}
/integrity="sha384-[^"]*"/ && /htmx\.org@/ && !/dist\// {
    sub(/sha384-[^"]*/, minified)
}
{print}
' "$DOCS" > "$DOCS.tmp" && mv "$DOCS.tmp" "$DOCS"

echo "✓ $DOCS updated successfully"