Изменение скрипта установки
This commit is contained in:
parent
64aea9824d
commit
89325818cd
70
f7office.sh
Normal file
70
f7office.sh
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#!/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
|
||||
|
|
@ -18,38 +18,7 @@ else
|
|||
fi
|
||||
|
||||
COPY() {
|
||||
# Проверка существования источника
|
||||
if [ ! -e "$1" ]; then
|
||||
echo "Предупреждение: источник не существует: $1"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Создаем целевую директорию, если её нет
|
||||
local target_dir=$(dirname "$2")
|
||||
if [ ! -d "$target_dir" ]; then
|
||||
if [ -z "$DRY_RUN" ]; then
|
||||
mkdir -p "$target_dir"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Ошибка: Не удалось создать директорию $target_dir"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
echo "[DRY-RUN] mkdir -p $target_dir"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Копируем файл
|
||||
if [ -z "$DRY_RUN" ]; then
|
||||
cp -a "$1" "$2"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Ошибка: Не удалось скопировать $1 в $2"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
echo "[DRY-RUN] cp -a $1 $2"
|
||||
fi
|
||||
|
||||
return 0
|
||||
$DRY_RUN cp -a "$1" "$2"
|
||||
}
|
||||
|
||||
# Копирование browser/dist (только изменённые файлы)
|
||||
|
|
@ -57,31 +26,10 @@ DIST_SRC="${ROOT}/usr/share/coolwsd/browser/dist"
|
|||
DIST_DST="/usr/share/coolwsd/browser/dist"
|
||||
|
||||
if [ ! -d "$DIST_DST" ]; then
|
||||
echo "Ошибка: Каталог $DIST_DST не найден."
|
||||
echo "Сначала установите coolwsd и code-brand."
|
||||
echo ""
|
||||
echo "Для Debian/Ubuntu:"
|
||||
echo " apt-get update"
|
||||
echo " apt-get install coolwsd code-brand"
|
||||
echo "Каталог $DIST_DST не найден. Сначала установите coolwsd и code-brand."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Дополнительная проверка: проверяем, что coolwsd установлен
|
||||
if ! command -v coolwsd &>/dev/null; then
|
||||
echo "Предупреждение: Команда coolwsd не найдена в PATH."
|
||||
echo "Убедитесь, что coolwsd установлен корректно."
|
||||
fi
|
||||
|
||||
# Проверяем статус сервиса coolwsd (если доступен systemctl)
|
||||
if command -v systemctl &>/dev/null; then
|
||||
if systemctl is-active --quiet coolwsd 2>/dev/null; then
|
||||
echo "✓ Сервис coolwsd запущен"
|
||||
else
|
||||
echo "⚠ Предупреждение: Сервис coolwsd не запущен."
|
||||
echo " После установки файлов запустите: systemctl start coolwsd"
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -f "$DIST_SRC/branding.js" ] && COPY "$DIST_SRC/branding.js" "$DIST_DST/"
|
||||
[ -f "$DIST_SRC/branding.css" ] && COPY "$DIST_SRC/branding.css" "$DIST_DST/"
|
||||
[ -f "$DIST_SRC/branding-mobile.css" ] && COPY "$DIST_SRC/branding-mobile.css" "$DIST_DST/"
|
||||
|
|
@ -103,48 +51,9 @@ fi
|
|||
# [ -f "${ROOT}/etc/apache2/sites-available/collabora-le-ssl.conf" ] && COPY "${ROOT}/etc/apache2/sites-available/collabora-le-ssl.conf" /etc/apache2/sites-available/
|
||||
|
||||
if [ -z "$DRY_RUN" ]; then
|
||||
echo "Файлы установлены."
|
||||
|
||||
# Проверяем, какие файлы были скопированы
|
||||
echo ""
|
||||
echo "Установленные файлы:"
|
||||
[ -f "$DIST_DST/branding.js" ] && echo " ✓ branding.js" || echo " ✗ branding.js (не найден)"
|
||||
[ -f "$DIST_DST/branding.css" ] && echo " ✓ branding.css" || echo " ✗ branding.css (не найден)"
|
||||
[ -f "$DIST_DST/branding-mobile.css" ] && echo " ✓ branding-mobile.css" || echo " ✗ branding-mobile.css (не найден)"
|
||||
[ -f "$DIST_DST/branding-tablet.css" ] && echo " ✓ branding-tablet.css" || echo " ✗ branding-tablet.css (не найден)"
|
||||
[ -f "$DIST_DST/cool.html" ] && echo " ✓ cool.html" || echo " ✗ cool.html (не найден)"
|
||||
[ -f "$DIST_DST/wasm.html" ] && echo " ✓ wasm.html" || echo " ✗ wasm.html (не найден)"
|
||||
[ -f "$DIST_DST/welcome/welcome.html" ] && echo " ✓ welcome/welcome.html" || echo " ✗ welcome/welcome.html (не найден)"
|
||||
[ -f "$DIST_DST/src/layer/tile/CanvasTileUtils.js" ] && echo " ✓ src/layer/tile/CanvasTileUtils.js" || echo " ✗ src/layer/tile/CanvasTileUtils.js (не найден)"
|
||||
[ -f "$DIST_DST/src/layer/tile/TileWorker.js" ] && echo " ✓ src/layer/tile/TileWorker.js" || echo " ✗ src/layer/tile/TileWorker.js (не найден)"
|
||||
[ -d "$DIST_DST/f7cloud" ] && echo " ✓ f7cloud/ (директория брендинга)" || echo " ✗ f7cloud/ (директория не найдена)"
|
||||
|
||||
echo ""
|
||||
echo "Перезапуск coolwsd..."
|
||||
if command -v systemctl &>/dev/null; then
|
||||
if systemctl restart coolwsd 2>/dev/null; then
|
||||
echo "✓ coolwsd перезапущен успешно"
|
||||
|
||||
# Проверяем статус после перезапуска
|
||||
sleep 1
|
||||
if systemctl is-active --quiet coolwsd 2>/dev/null; then
|
||||
echo "✓ coolwsd работает корректно"
|
||||
else
|
||||
echo "⚠ Предупреждение: coolwsd не запустился после перезапуска"
|
||||
echo " Проверьте логи: journalctl -u coolwsd"
|
||||
fi
|
||||
else
|
||||
echo "⚠ Не удалось перезапустить coolwsd автоматически"
|
||||
echo " Запустите вручную: systemctl restart coolwsd"
|
||||
echo " Или проверьте статус: systemctl status coolwsd"
|
||||
fi
|
||||
else
|
||||
echo "⚠ systemctl не найден, перезапустите coolwsd вручную"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Готово. F7_Office брендинг установлен."
|
||||
echo "Файлы установлены. Перезапуск coolwsd..."
|
||||
systemctl restart coolwsd 2>/dev/null || true
|
||||
echo "Готово."
|
||||
else
|
||||
echo "Dry-run: команды выше не выполнялись."
|
||||
echo "Для реальной установки запустите скрипт без --dry-run"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user