Files
insin_anydesk/build.sh
T

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"