You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# This script checks for existence of data/ data/db and data/logs directories and creates them + sets correct permissions if they don't exist
|
|
# If db.sqlite3 and lndg-controller.log exist in main app dir, then we move them to their respective new locations and do not change permissions (lndg runs as root)
|
|
# This will be the case for installs that are updating from pre 1.9.0
|
|
|
|
# App directory is one level up from this script
|
|
APP_DIR="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)"
|
|
APP_DATA_DIR="${APP_DIR}/data"
|
|
APP_DATA_DB_DIR="${APP_DATA_DIR}/db"
|
|
APP_DATA_LOGS_DIR="${APP_DATA_DIR}/logs"
|
|
DESIRED_OWNER="1000:1000"
|
|
|
|
set_correct_permissions() {
|
|
local -r path="${1}"
|
|
|
|
if [[ -d "${path}" ]]; then
|
|
owner=$(stat -c "%u:%g" "${path}")
|
|
|
|
if [[ "${owner}" != "${DESIRED_OWNER}" ]]; then
|
|
chown -R "${DESIRED_OWNER}" "${path}"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
create_directory_if_not_exists() {
|
|
local -r dir="${1}"
|
|
if [[ ! -d "${dir}" ]]; then
|
|
mkdir -p "${dir}"
|
|
set_correct_permissions "${dir}"
|
|
fi
|
|
}
|
|
|
|
move_file_if_exists() {
|
|
local -r src="${1}"
|
|
local -r dest="${2}"
|
|
if [[ -f "${src}" ]]; then
|
|
mv "${src}" "${dest}"
|
|
fi
|
|
}
|
|
|
|
# Create directories if they don't exist
|
|
create_directory_if_not_exists "${APP_DATA_DIR}"
|
|
create_directory_if_not_exists "${APP_DATA_DB_DIR}"
|
|
create_directory_if_not_exists "${APP_DATA_LOGS_DIR}"
|
|
|
|
# Move files if they exist
|
|
move_file_if_exists "${APP_DIR}/db.sqlite3" "${APP_DATA_DB_DIR}/db.sqlite3"
|
|
move_file_if_exists "${APP_DIR}/lndg-controller.log" "${APP_DATA_LOGS_DIR}/lndg-controller.log"
|