From 7105659ab02ca0a4214a0d1167aec1f2ced5fd7c Mon Sep 17 00:00:00 2001 From: EugeneTes Date: Thu, 23 Jul 2026 08:25:33 +0000 Subject: [PATCH] add scripts/publish-insin.sh for manual insin package publish --- .gitignore | 6 ++++- scripts/publish-insin.sh | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 scripts/publish-insin.sh diff --git a/.gitignore b/.gitignore index 9491a2f..7027678 100644 --- a/.gitignore +++ b/.gitignore @@ -360,4 +360,8 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd + +# Insin publish artifacts +.tools/ +publish/ \ No newline at end of file diff --git a/scripts/publish-insin.sh b/scripts/publish-insin.sh new file mode 100755 index 0000000..349c09e --- /dev/null +++ b/scripts/publish-insin.sh @@ -0,0 +1,48 @@ +#!/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-arm64 --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 +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"]=="linux-arm64"); 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}"