feat: atxpi — server power & console manager (core, CLI, deploy)
- 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 и доки очищены от внутренних хостов/адресов (публичный репо)
This commit is contained in:
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/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)"
|
||||
Reference in New Issue
Block a user