55 lines
2.1 KiB
Bash
Executable File
55 lines
2.1 KiB
Bash
Executable File
#!/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}"
|