#!/usr/bin/env bash set -euo pipefail # Целью этого предстартового крючка является миграция # локальная папка загрузок для существующих установок # в общую папку загрузок DFWebOS APP_DATA_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)" DFWEBOS_ROOT="${APP_DATA_DIR}/../.." # Нам необходимо обеспечить общую папку загрузки DFWebOS. # существует и принадлежит правильному пользователю DFWEBOS_DATA_DIR="${DFWEBOS_ROOT}/data" DFWEBOS_DATA_STORAGE_DIR="${DFWEBOS_DATA_DIR}/storage" DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR="${DFWEBOS_DATA_STORAGE_DIR}/downloads" DESIRED_OWNER="1000:1000" if [[ ! -d "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" ]]; then mkdir -p "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" fi simpletorrent_correct_permission() { local -r path="${1}" if [[ -d "${path}" ]]; then owner=$(stat -c "%u:%g" "${path}") if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then chown "${DESIRED_OWNER}" "${path}" fi fi } simpletorrent_correct_permission "${DFWEBOS_DATA_DIR}" simpletorrent_correct_permission "${DFWEBOS_DATA_STORAGE_DIR}" simpletorrent_correct_permission "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" # Перенесите существующие установки для использования общего каталога загрузок. LOCAL_DOWNLOADS_DIR="${APP_DATA_DIR}/data/downloads" if [[ ! -d "${LOCAL_DOWNLOADS_DIR}" ]]; then echo "No local downloads directory found. Skipping migration..." exit fi # Проверьте, не пуста ли локальная загрузка. if [[ "$(ls -l "${LOCAL_DOWNLOADS_DIR}" | wc -l)" -gt "1" ]]; then # Переместите содержимое локальной папки загрузок в общую папку загрузок DFWebOS. mv --verbose "${LOCAL_DOWNLOADS_DIR}/"* "${DFWEBOS_DATA_STORAGE_DOWNLOADS_DIR}" fi # Проверьте, пуст ли теперь локальный каталог загрузок. if [[ "$(ls -l "${LOCAL_DOWNLOADS_DIR}" | wc -l)" -gt "1" ]]; then echo "Failed to migrate local downloads directory: ${LOCAL_DOWNLOADS_DIR}" echo "This directory still contains files/folders..." exit fi rm -rf "${LOCAL_DOWNLOADS_DIR}" echo "Local downloads directory successfully migrated"