43 lines
1.8 KiB
Bash
43 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
# Laedt xterm.js und guacamole-common-js lokal herunter (npm) und kopiert die
|
|
# fertigen Dist-Dateien nach static/js/vendor/ bzw. static/js/vendor/.
|
|
#
|
|
# Bewusst KEIN CDN-Bezug zur Laufzeit im Browser (Hardening-Konzept 4.1/6.6) --
|
|
# der Download passiert einmalig zur Build-/Deployzeit, im Betrieb werden die
|
|
# Assets ausschliesslich lokal vom Jumphost selbst ausgeliefert.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
VENDOR_DIR="$PROJECT_ROOT/static/js/vendor"
|
|
TMP_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$TMP_DIR"' EXIT
|
|
|
|
mkdir -p "$VENDOR_DIR"
|
|
|
|
echo "==> Installiere xterm.js + Addon 'fit' + guacamole-common-js nach $TMP_DIR"
|
|
cd "$TMP_DIR"
|
|
npm init -y >/dev/null
|
|
npm install --no-audit --no-fund \
|
|
xterm@5 \
|
|
xterm-addon-fit@0.8 \
|
|
xterm-addon-canvas@0.5 \
|
|
guacamole-common-js@1.5
|
|
|
|
echo "==> Kopiere Dist-Dateien nach $VENDOR_DIR"
|
|
cp node_modules/xterm/lib/xterm.js "$VENDOR_DIR/xterm.js"
|
|
cp node_modules/xterm/css/xterm.css "$VENDOR_DIR/xterm.css"
|
|
cp node_modules/xterm-addon-fit/lib/xterm-addon-fit.js "$VENDOR_DIR/xterm-addon-fit.js"
|
|
cp node_modules/xterm-addon-canvas/lib/xterm-addon-canvas.js "$VENDOR_DIR/xterm-addon-canvas.js"
|
|
|
|
# guacamole-common-js liefert nur ESM/CJS-Builds aus, keinen fertigen
|
|
# Browser-Global-Build. Fuer die Einbindung per klassischem <script>-Tag
|
|
# (kein CDN, kein <script type=module> noetig) wird die CJS-Variante
|
|
# genommen und das abschliessende `module.exports = Guacamole;` durch eine
|
|
# Zuweisung auf window ersetzt.
|
|
cp node_modules/guacamole-common-js/dist/cjs/guacamole-common.js "$VENDOR_DIR/guacamole-common.js"
|
|
sed -i '$ d' "$VENDOR_DIR/guacamole-common.js" # letzte Zeile (module.exports=...) entfernen
|
|
echo "window.Guacamole = Guacamole;" >> "$VENDOR_DIR/guacamole-common.js"
|
|
|
|
echo "==> Fertig. Assets liegen unter $VENDOR_DIR"
|