#!/usr/bin/env bash set -euo pipefail : "${INSIN_URL:?INSIN_URL not set}" : "${INSIN_TOKEN:?INSIN_TOKEN not set}" repo_root="$(cd "$(dirname "$0")/.." && pwd)" cd "$repo_root" version=$(dotnet msbuild EpsonPrintService/EpsonPrintService.csproj \ -getProperty:Version -nologo | tr -d '[:space:]') echo "Publishing epson-print-service@${version}" payload="publish/payload" rm -rf publish && mkdir -p "$payload" dotnet publish EpsonPrintService/EpsonPrintService.csproj \ -c Release -r linux-arm --self-contained true \ -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true \ -o "$payload" cp deploy/insin/install.cfg "$payload/" cp deploy/insin/postinst "$payload/" cp deploy/insin/prem "$payload/" cp deploy/insin/epson.service "$payload/" chmod +x "$payload/postinst" "$payload/prem" mkdir -p .tools case "$(uname -m)" in x86_64) cli_rid=linux-x64 ;; aarch64|arm64) cli_rid=linux-arm64 ;; armv7l|armv6l) cli_rid=linux-arm ;; *) echo "unsupported host arch: $(uname -m)" >&2; exit 1 ;; esac manifest=$(curl -fsSL "$INSIN_URL/api/v1/downloads/cli") cli_version=$(printf '%s' "$manifest" \ | python3 -c 'import json,sys; print(json.load(sys.stdin)[0]["version"])') cli_filename=$(printf '%s' "$manifest" \ | python3 -c "import json,sys; a=next(x for x in json.load(sys.stdin)[0]['artifacts'] if x['rid']=='$cli_rid'); print(a['filename'])") if [ ! -x ".tools/insin/insin" ] || [ "$(cat .tools/insin/.version 2>/dev/null)" != "$cli_version" ]; then echo "Fetching insin CLI $cli_version" curl -fsSL "$INSIN_URL/api/v1/downloads/cli/$cli_version/$cli_filename" -o /tmp/insin.tar.gz rm -rf .tools/insin && mkdir -p .tools/insin tar -xzf /tmp/insin.tar.gz -C .tools/insin chmod +x .tools/insin/insin echo "$cli_version" > .tools/insin/.version fi insin_bin="$repo_root/.tools/insin/insin" ( cd "$payload" && "$insin_bin" pack "epson-print-service@${version}" ) pkg="publish/packages/epson-print-service@${version}.pkg" [ -f "$pkg" ] || { echo "expected $pkg missing"; exit 1; } "$insin_bin" publish "$pkg" echo "Published epson-print-service@${version}"