- core/hardware: драйверы real (atxctl/pyserial) + mock, ATXPI_DRIVER - core/power, console, mock: операции питания и RS232-консоли - cli/atxpi: status/on/off/reset/cycle/console (stdlib, без deps) - install.sh: one-shot curl|bash, идемпотентный, хост-агностичный - deploy: systemd-юнит, шаблон env, update.sh - README, AGENTS.md: документация и проектные решения - AGENTS.md и доки очищены от внутренних хостов/адресов (публичный репо)
23 lines
809 B
Bash
Executable File
23 lines
809 B
Bash
Executable File
#!/bin/bash
|
|
# atxpi — обновление до последней версии (идемпотентно).
|
|
# Использование: sudo bash /opt/arm/update.sh
|
|
set -euo pipefail
|
|
|
|
ATXPI_TARGET="${ATXPI_TARGET:-/opt/arm}"
|
|
APP_DIR="$ATXPI_TARGET/atxpi"
|
|
|
|
log() { echo -e "\e[1;32m[atxpi]\e[0m $*"; }
|
|
|
|
[ -d "$ATXPI_TARGET/.git" ] || { echo "Нет репозитория в $ATXPI_TARGET — сначала install.sh"; exit 1; }
|
|
|
|
log "git pull..."
|
|
git -C "$ATXPI_TARGET" pull --ff-only
|
|
|
|
log "Обновляю зависимости..."
|
|
"$APP_DIR/venv/bin/pip" install -q -r "$APP_DIR/requirements.txt"
|
|
|
|
log "Перезапускаю сервис..."
|
|
systemctl restart atxpi.service
|
|
|
|
log "Готово: $(systemctl is-active atxpi.service) $(systemctl show atxpi.service -p ActiveEnterTimestamp --value)"
|