61 lines
2.4 KiB
Bash
Executable File
61 lines
2.4 KiB
Bash
Executable File
#!/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" |