F7_Office/install-f7office.sh

151 lines
6.8 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/code-brand.
# Запуск: sudo ./install-f7office.sh [--dry-run]
# Ожидается запуск из корня репозитория, где есть каталоги etc/ и usr/.
set -e
DRY_RUN=""
[ "$1" = "--dry-run" ] && DRY_RUN="echo" && shift
ROOT=""
if [ -d "usr/share/coolwsd/browser/dist" ] && [ -d "etc" ]; then
ROOT="."
elif [ -d "f7office-deploy/usr" ]; then
ROOT="f7office-deploy"
else
echo "Запустите скрипт из корня репозитория (где есть usr/ и etc/)."
exit 1
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
}
# Копирование browser/dist (только изменённые файлы)
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"
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/"
[ -f "$DIST_SRC/branding-tablet.css" ] && COPY "$DIST_SRC/branding-tablet.css" "$DIST_DST/"
[ -f "$DIST_SRC/cool.html" ] && COPY "$DIST_SRC/cool.html" "$DIST_DST/"
[ -f "$DIST_SRC/wasm.html" ] && COPY "$DIST_SRC/wasm.html" "$DIST_DST/"
[ -f "$DIST_SRC/welcome/welcome.html" ] && COPY "$DIST_SRC/welcome/welcome.html" "$DIST_DST/welcome/"
[ -f "$DIST_SRC/src/layer/tile/CanvasTileUtils.js" ] && COPY "$DIST_SRC/src/layer/tile/CanvasTileUtils.js" "$DIST_DST/src/layer/tile/"
[ -f "$DIST_SRC/src/layer/tile/TileWorker.js" ] && COPY "$DIST_SRC/src/layer/tile/TileWorker.js" "$DIST_DST/src/layer/tile/"
# f7cloud — каталог брендинга F7 Office
if [ -d "$DIST_SRC/f7cloud" ]; then
$DRY_RUN rm -rf "$DIST_DST/f7cloud"
$DRY_RUN cp -a "$DIST_SRC/f7cloud" "$DIST_DST/"
fi
# Конфиги (раскомментируйте при необходимости)
# [ -f "${ROOT}/etc/coolwsd/coolwsd.xml" ] && COPY "${ROOT}/etc/coolwsd/coolwsd.xml" /etc/coolwsd/
# [ -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 брендинг установлен."
else
echo "Dry-run: команды выше не выполнялись."
echo "Для реальной установки запустите скрипт без --dry-run"
fi