- Верхняя полоса и экран входа: логотип-изображение 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>
81 lines
3.5 KiB
Bash
Executable file
81 lines
3.5 KiB
Bash
Executable file
#!/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 собрана."
|