#!/usr/bin/env bash # Сборка «ALL MARKET — Проверка оборудования» (food-market.pos.hwcheck) под Windows x64. # Self-contained + ReadyToRun (без установленного .NET). В zip кладём ярлык-bat и README. # Обычная касса в этот zip НЕ входит — этим exe нельзя пользоваться как кассой. set -euo pipefail cd "$(dirname "$0")/.." PROJ=src/food-market.pos.hwcheck/food-market.pos.hwcheck.csproj OUT=deploy/pos-dist VER="$(date +%Y.%m.%d)" RID=win-x64 DIR="$OUT/allmarket-hardware-check-$RID" mkdir -p "$OUT" rm -rf "$DIR" echo "[hwcheck] publish $RID …" dotnet publish "$PROJ" -c Release -r "$RID" --self-contained true \ -p:PublishReadyToRun=true -p:Version="$VER" -p:DebugType=none \ -o "$DIR" >/tmp/hwcheck-publish.log 2>&1 || { tail -30 /tmp/hwcheck-publish.log; exit 1; } # Ярлык-bat (без ключей — тестовая печать выключена). Ярлык печати НЕ включаем: # тестовую печать владелец включит отдельной сборкой/ключом по своему слову. cat > "$DIR/Проверка оборудования.bat" <<'BAT' @echo off start "" "%~dp0foodmarket.Pos.HwCheck.exe" BAT cat > "$DIR/README.txt" <<'TXT' ALL MARKET — Проверка оборудования 1. Распакуйте папку целиком в любое место (например, на Рабочий стол). 2. На время проверки закройте «Кассу МойСклад» (она держит COM-порт весов). 3. Запустите «Проверка оборудования.bat». Вход и пароль НЕ нужны. 4. Весы: нажмите «Найти весы», затем «Запустить» — вес обновляется вживую. Для проверки с грузом положите гирю/товар и смотрите значение и «стабильно». 5. Принтеры и COM-порты показываются только для чтения. На принтер НИЧЕГО не печатается (тестовая печать выключена). 6. «Сохранить отчёт» — текстовый файл рядом с программой; «Копировать отчёт» — в буфер обмена. Пришлите отчёт — по нему настроим кассу. На принтер ничего не печатается. Тестовую печать включает владелец отдельно. TXT ( cd "$OUT" && zip -qr "allmarket-hardware-check-$RID-$VER.zip" "allmarket-hardware-check-$RID" ) echo "[hwcheck] zip: $OUT/allmarket-hardware-check-$RID-$VER.zip"