F7_Office/f7office.sh
2026-02-23 04:49:52 +00:00

71 lines
3.0 KiB
Bash
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.

#!/bin/bash
# Установка F7_Office (coolwsd, брендинг). Запускается на сервере Office.
# Apache и сертификаты настраивает управляющий скрипт.
# Использование: ./f7office.sh /path/to/f7cloud-install.env
set -e
ROLE="f7office"
ENV_FILE="${1:-/tmp/f7cloud-install.env}"
ERROR_LOG="/tmp/install-error-${ROLE}.log"
log_error() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: $*" >> "$ERROR_LOG"; echo "ERROR: $*" >&2; }
log_warn() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] WARN: $*" >> "$ERROR_LOG"; echo "WARN: $*" >&2; }
if [ ! -f "$ENV_FILE" ]; then
log_error "Файл конфигурации не найден: $ENV_FILE"
exit 1
fi
# shellcheck source=/dev/null
set -a && source "$ENV_FILE" && set +a
> "$ERROR_LOG"
echo "=== Лог установки F7_Office ===" >> "$ERROR_LOG"
echo "Начало: $(date '+%Y-%m-%d %H:%M:%S')" >> "$ERROR_LOG"
if ! command -v git >/dev/null 2>&1; then
echo "Установка git..."
apt-get update -qq && apt-get install -y git || { log_error "Не удалось установить git"; exit 1; }
fi
echo "Очистка старой директории..."
rm -rf /tmp/F7_Office
echo "Клонирование репозитория F7_Office..."
if ! (cd /tmp && git clone https://git.f7cloud.ru/root/F7_Office.git); then
log_error "Не удалось клонировать репозиторий F7_Office"
exit 1
fi
sleep 1
if ! [ -d /tmp/F7_Office ] || ! [ -f /tmp/F7_Office/install-f7office.sh ]; then
log_error "Директория /tmp/F7_Office не содержит install-f7office.sh"
exit 1
fi
echo "Установка coolwsd и code-brand..."
apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get install -y coolwsd code-brand || { log_error "Не удалось установить coolwsd/code-brand"; exit 1; }
echo "Копирование файлов брендинга..."
DIST_SRC=/tmp/F7_Office/usr/share/coolwsd/browser/dist
DIST_DST=/usr/share/coolwsd/browser/dist
if [ ! -d "$DIST_DST" ]; then
log_error "Каталог $DIST_DST не найден после установки coolwsd"
exit 1
fi
if [ ! -d "$DIST_SRC" ]; then
log_error "В репозитории не найден каталог $DIST_SRC"
exit 1
fi
cp -a "$DIST_SRC"/* "$DIST_DST/" 2>/dev/null || true
for f in branding.js branding.css branding-mobile.css branding-tablet.css cool.html wasm.html; do
[ -f "$DIST_SRC/$f" ] && cp -a "$DIST_SRC/$f" "$DIST_DST/" && echo " Скопирован: $f"
done
[ -d "$DIST_SRC/welcome" ] && cp -a "$DIST_SRC/welcome" "$DIST_DST/"
[ -d "$DIST_SRC/src" ] && mkdir -p "$DIST_DST/src" && cp -a "$DIST_SRC/src/layer" "$DIST_DST/src/" 2>/dev/null || true
[ -d "$DIST_SRC/f7cloud" ] && cp -a "$DIST_SRC/f7cloud" "$DIST_DST/"
systemctl restart coolwsd 2>/dev/null || true
echo "Конец: $(date '+%Y-%m-%d %H:%M:%S')" >> "$ERROR_LOG"
echo "F7_Office установлен. Лог ошибок: $ERROR_LOG"
exit 0