151 lines
6.8 KiB
Bash
151 lines
6.8 KiB
Bash
#!/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
|