63 lines
2.1 KiB
Bash
63 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# Build & publish the insin anydesk package.
|
|
#
|
|
# Required env:
|
|
# INSIN_URL - e.g. https://insin.example.com
|
|
# INSIN_TOKEN - service token from the Insin admin panel
|
|
#
|
|
# Optional env:
|
|
# ANYDESK_VERSION - full deb version tag (default: 6.4.0-1)
|
|
# PKG_VERSION - insin package semver (default: derived from ANYDESK_VERSION)
|
|
# INSIN_CLI_RID - CLI artifact rid (default: auto-detected from uname -m)
|
|
|
|
set -euo pipefail
|
|
|
|
: "${INSIN_URL:?INSIN_URL must be set}"
|
|
: "${INSIN_TOKEN:?INSIN_TOKEN must be set}"
|
|
|
|
ANYDESK_VERSION="${ANYDESK_VERSION:-6.4.0-1}"
|
|
PKG_VERSION="${PKG_VERSION:-${ANYDESK_VERSION%-*}}"
|
|
|
|
case "${INSIN_CLI_RID:-$(uname -m)}" in
|
|
linux-arm64|aarch64|arm64) RID="linux-arm64" ;;
|
|
linux-x64|x86_64|amd64)
|
|
echo "ERROR: no linux-x64 insin CLI artifact — run on an arm64 runner" >&2
|
|
exit 1 ;;
|
|
*) RID="${INSIN_CLI_RID:-linux-arm64}" ;;
|
|
esac
|
|
|
|
HERE="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
SRC="$HERE/src"
|
|
|
|
redact() { sed -E "s|${INSIN_TOKEN}|***|g"; }
|
|
|
|
echo "==> Downloading AnyDesk ${ANYDESK_VERSION} arm64 .deb"
|
|
curl -fsSL "https://download.anydesk.com/rpi/anydesk_${ANYDESK_VERSION}_arm64.deb" \
|
|
-o "$SRC/anydesk_arm64.deb"
|
|
|
|
echo "==> Fetching latest insin CLI ($RID)"
|
|
CLI_META="$(curl -fsSL "$INSIN_URL/api/v1/downloads/cli" 2>&1 | redact)"
|
|
read -r CLI_VERSION CLI_FILE < <(python3 -c '
|
|
import json, sys
|
|
m = json.loads(sys.argv[1])[0]
|
|
a = next(x for x in m["artifacts"] if x["rid"] == sys.argv[2])
|
|
print(m["version"], a["filename"])
|
|
' "$CLI_META" "$RID")
|
|
|
|
mkdir -p /tmp/insin
|
|
curl -fsSL "$INSIN_URL/api/v1/downloads/cli/$CLI_VERSION/$CLI_FILE" \
|
|
-o /tmp/insin.tar.gz 2>&1 | redact
|
|
tar -xzf /tmp/insin.tar.gz -C /tmp/insin
|
|
chmod +x /tmp/insin/insin
|
|
|
|
echo "==> Packing anydesk@${PKG_VERSION}"
|
|
( cd "$SRC" && /tmp/insin/insin pack "anydesk@${PKG_VERSION}" )
|
|
|
|
PKG="$HERE/packages/anydesk@${PKG_VERSION}.pkg"
|
|
[[ -f "$PKG" ]] || { echo "ERROR: expected $PKG but it wasn't produced" >&2; exit 1; }
|
|
|
|
echo "==> Publishing $PKG"
|
|
/tmp/insin/insin publish "$PKG" 2>&1 | redact
|
|
|
|
echo "==> Done: anydesk@${PKG_VERSION} published"
|