food-market/deploy/pos-publish.sh
nns d0d6ebcea1 rebrand: касса ALL MARKET (лого, иконка, заголовок, чек)
- Верхняя полоса и экран входа: логотип-изображение ALL MARKET из ресурсов
  (avares Assets/), color на светлой теме и white на тёмной (Brand.ApplyLogo).
- Заголовок окна «ALL MARKET · Касса»; иконка окна и ApplicationIcon = allmarket.ico
  (собрана из фирменных PNG 32/180/192).
- Чек: в шапке — название точки/магазина (резолвится из RetailPoint, PosSession.StoreName),
  внизу мелко «ALL MARKET — система учёта торговли» (был хардкод «Food Market» в шапке).
- AppImage .desktop: Name «ALL MARKET Касса» + фирменная иконка.
- Эталон-макет pos-mockup.html — логотип «all market».
- AssemblyName/exe (foodmarket.Pos) и имена артефактов не менялись (инфраструктура).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 17:35:05 +05:00

81 lines
3.5 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# Сборка кассы food-market.pos (Avalonia) под Windows x64 и Linux x64.
# Self-contained + ReadyToRun (быстрый старт, без установленного .NET на кассе).
# Trimming выключен по умолчанию (Avalonia/XAML использует рефлексию; AOT/trim —
# отдельная задача, см. docs/pos.md). Результат — zip/tar.gz в deploy/pos-dist/.
#
# Запуск: deploy/pos-publish.sh [win|linux|all] (по умолчанию all)
set -euo pipefail
cd "$(dirname "$0")/.."
PROJ=src/food-market.pos/food-market.pos.csproj
OUT=deploy/pos-dist
VER="$(date +%Y.%m.%d)"
mkdir -p "$OUT"
TARGET="${1:-all}"
publish() {
local rid="$1" label="$2"
echo "[pos-publish] $label ($rid) …"
local dir="$OUT/food-market-pos-$rid"
rm -rf "$dir"
dotnet publish "$PROJ" -c Release -r "$rid" --self-contained true \
-p:PublishReadyToRun=true -p:Version="$VER" -p:DebugType=none \
-o "$dir" >/tmp/pos-publish-$rid.log 2>&1 || { tail -25 /tmp/pos-publish-$rid.log; exit 1; }
# версия для автообновления кассой
echo "$VER" > "$dir/VERSION.txt"
local size; size=$(du -sh "$dir" | cut -f1)
echo "[pos-publish] $label готово: $dir ($size)"
}
# AppImage для Linux (переносимый single-file). Требует appimagetool в PATH;
# если его нет — пропускаем (tar.gz остаётся основным артефактом Linux).
build_appimage() {
local rid="$1" ver="$2"
local src="$OUT/food-market-pos-$rid"
if ! command -v appimagetool >/dev/null 2>&1; then
echo "[pos-publish] appimagetool не найден — AppImage пропущен (есть tar.gz)."
return 0
fi
local appdir="$OUT/FoodMarketPos.AppDir"
rm -rf "$appdir"; mkdir -p "$appdir/usr/bin"
cp -r "$src/." "$appdir/usr/bin/"
cat > "$appdir/foodmarket-pos.desktop" <<DESK
[Desktop Entry]
Name=ALL MARKET Касса
Exec=foodmarket.Pos
Icon=foodmarket-pos
Type=Application
Categories=Office;
DESK
# Фирменная иконка ALL MARKET (зелёный квадрат 512). Фоллбэк — 1x1 PNG.
if [ -f src/food-market.pos/Assets/allmarket-icon-512.png ]; then
cp src/food-market.pos/Assets/allmarket-icon-512.png "$appdir/foodmarket-pos.png"
else
printf '\x89PNG\r\n\x1a\n' > "$appdir/foodmarket-pos.png"
fi
cat > "$appdir/AppRun" <<'RUN'
#!/bin/sh
HERE="$(dirname "$(readlink -f "$0")")"
exec "$HERE/usr/bin/foodmarket.Pos" "$@"
RUN
chmod +x "$appdir/AppRun" "$appdir/usr/bin/foodmarket.Pos"
( cd "$OUT" && ARCH=x86_64 appimagetool "FoodMarketPos.AppDir" "food-market-pos-$ver-x86_64.AppImage" >/tmp/pos-appimage.log 2>&1 ) \
&& echo "[pos-publish] AppImage: $OUT/food-market-pos-$ver-x86_64.AppImage" \
|| { echo "[pos-publish] AppImage не собрался (см. /tmp/pos-appimage.log) — tar.gz остаётся."; }
rm -rf "$appdir"
}
if [[ "$TARGET" == "win" || "$TARGET" == "all" ]]; then
publish win-x64 "Windows x64"
( cd "$OUT" && zip -qr "food-market-pos-win-x64-$VER.zip" food-market-pos-win-x64 )
echo "[pos-publish] zip: $OUT/food-market-pos-win-x64-$VER.zip"
fi
if [[ "$TARGET" == "linux" || "$TARGET" == "all" ]]; then
publish linux-x64 "Linux x64"
( cd "$OUT" && tar czf "food-market-pos-linux-x64-$VER.tar.gz" food-market-pos-linux-x64 )
echo "[pos-publish] tar: $OUT/food-market-pos-linux-x64-$VER.tar.gz"
build_appimage linux-x64 "$VER"
fi
echo "[pos-publish] версия $VER собрана."