feat: support custom DATA_DIR (fixed #17)
This commit is contained in:
+3
-5
@@ -32,7 +32,7 @@ function backup_config() {
|
|||||||
color blue "backup bitwarden_rs config"
|
color blue "backup bitwarden_rs config"
|
||||||
|
|
||||||
if [[ -f "${DATA_CONFIG}" ]]; then
|
if [[ -f "${DATA_CONFIG}" ]]; then
|
||||||
cp -f "${DATA_DIR}/config.json" "${BACKUP_FILE_CONFIG}"
|
cp -f "${DATA_CONFIG}" "${BACKUP_FILE_CONFIG}"
|
||||||
else
|
else
|
||||||
color yellow "not found bitwarden_rs config, skipping"
|
color yellow "not found bitwarden_rs config, skipping"
|
||||||
fi
|
fi
|
||||||
@@ -41,10 +41,8 @@ function backup_config() {
|
|||||||
function backup_attachments() {
|
function backup_attachments() {
|
||||||
color blue "backup bitwarden_rs attachments"
|
color blue "backup bitwarden_rs attachments"
|
||||||
|
|
||||||
local DATA_ATTACHMENTS="attachments"
|
if [[ -d "${DATA_ATTACHMENTS}" ]]; then
|
||||||
|
tar -c -C "${DATA_ATTACHMENTS_DIRNAME}" -f "${BACKUP_FILE_ATTACHMENTS}" "${DATA_ATTACHMENTS_BASENAME}"
|
||||||
if [[ -d "${DATA_DIR}/${DATA_ATTACHMENTS}" ]]; then
|
|
||||||
tar -c -C "${DATA_DIR}" -f "${BACKUP_FILE_ATTACHMENTS}" "${DATA_ATTACHMENTS}"
|
|
||||||
|
|
||||||
color blue "display attachments tar file list"
|
color blue "display attachments tar file list"
|
||||||
|
|
||||||
|
|||||||
+52
-6
@@ -1,10 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
ENV_FILE="/.env"
|
ENV_FILE="/.env"
|
||||||
DATA_DIR="/bitwarden/data"
|
|
||||||
DATA_DB="${DATA_DIR}/db.sqlite3"
|
|
||||||
DATA_CONFIG="${DATA_DIR}/config.json"
|
|
||||||
DATA_ATTACHMENTS="${DATA_DIR}/attachments"
|
|
||||||
BACKUP_DIR="/bitwarden/backup"
|
BACKUP_DIR="/bitwarden/backup"
|
||||||
RESTORE_DIR="/bitwarden/restore"
|
RESTORE_DIR="/bitwarden/restore"
|
||||||
RESTORE_EXTRACT_DIR="/bitwarden/extract"
|
RESTORE_EXTRACT_DIR="/bitwarden/extract"
|
||||||
@@ -24,7 +20,7 @@ function color() {
|
|||||||
green) echo -e "\033[32m$2\033[0m" ;;
|
green) echo -e "\033[32m$2\033[0m" ;;
|
||||||
yellow) echo -e "\033[33m$2\033[0m" ;;
|
yellow) echo -e "\033[33m$2\033[0m" ;;
|
||||||
blue) echo -e "\033[34m$2\033[0m" ;;
|
blue) echo -e "\033[34m$2\033[0m" ;;
|
||||||
none) echo $2 ;;
|
none) echo "$2" ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,6 +37,30 @@ function check_rclone_connection() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Check file is exist.
|
||||||
|
# Arguments:
|
||||||
|
# file
|
||||||
|
########################################
|
||||||
|
function check_file_exist() {
|
||||||
|
if [[ ! -f "$1" ]]; then
|
||||||
|
color red "cannot access $2: No such file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# Check directory is exist.
|
||||||
|
# Arguments:
|
||||||
|
# directory
|
||||||
|
########################################
|
||||||
|
function check_dir_exist() {
|
||||||
|
if [[ ! -d "$1" ]]; then
|
||||||
|
color red "cannot access $2: No such directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Send mail by mailx.
|
# Send mail by mailx.
|
||||||
# Arguments:
|
# Arguments:
|
||||||
@@ -142,7 +162,8 @@ function get_env() {
|
|||||||
########################################
|
########################################
|
||||||
function init_env() {
|
function init_env() {
|
||||||
# export
|
# export
|
||||||
export_env_file
|
|
||||||
|
init_env_dir
|
||||||
|
|
||||||
# CRON
|
# CRON
|
||||||
get_env CRON
|
get_env CRON
|
||||||
@@ -225,6 +246,11 @@ function init_env() {
|
|||||||
TIMEZONE="UTC"
|
TIMEZONE="UTC"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
color yellow "========================================"
|
||||||
|
color yellow "DATA_DIR: ${DATA_DIR}"
|
||||||
|
color yellow "DATA_DB: ${DATA_DB}"
|
||||||
|
color yellow "DATA_CONFIG: ${DATA_CONFIG}"
|
||||||
|
color yellow "DATA_ATTACHMENTS: ${DATA_ATTACHMENTS}"
|
||||||
color yellow "========================================"
|
color yellow "========================================"
|
||||||
color yellow "CRON: ${CRON}"
|
color yellow "CRON: ${CRON}"
|
||||||
color yellow "RCLONE_REMOTE_NAME: ${RCLONE_REMOTE_NAME}"
|
color yellow "RCLONE_REMOTE_NAME: ${RCLONE_REMOTE_NAME}"
|
||||||
@@ -244,3 +270,23 @@ function init_env() {
|
|||||||
color yellow "TIMEZONE: ${TIMEZONE}"
|
color yellow "TIMEZONE: ${TIMEZONE}"
|
||||||
color yellow "========================================"
|
color yellow "========================================"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function init_env_dir() {
|
||||||
|
# DATA_DIR
|
||||||
|
get_env DATA_DIR
|
||||||
|
DATA_DIR="${DATA_DIR:-"/bitwarden/data"}"
|
||||||
|
check_dir_exist "${DATA_DIR}"
|
||||||
|
|
||||||
|
# DATA_DB
|
||||||
|
get_env DATA_DB
|
||||||
|
DATA_DB="${DATA_DB:-"${DATA_DIR}/db.sqlite3"}"
|
||||||
|
|
||||||
|
# DATA_CONFIG
|
||||||
|
DATA_CONFIG="${DATA_DIR}/config.json"
|
||||||
|
|
||||||
|
# DATA_ATTACHMENTS
|
||||||
|
get_env DATA_ATTACHMENTS
|
||||||
|
DATA_ATTACHMENTS="$(realpath "${DATA_ATTACHMENTS:-"${DATA_DIR}/attachments"}")"
|
||||||
|
DATA_ATTACHMENTS_DIRNAME="$(dirname "${DATA_ATTACHMENTS}")"
|
||||||
|
DATA_ATTACHMENTS_BASENAME="$(basename "${DATA_ATTACHMENTS}")"
|
||||||
|
}
|
||||||
|
|||||||
+10
-1
@@ -77,8 +77,16 @@ function restore_config() {
|
|||||||
function restore_attachments() {
|
function restore_attachments() {
|
||||||
color blue "restore bitwarden_rs attachments"
|
color blue "restore bitwarden_rs attachments"
|
||||||
|
|
||||||
|
# When customizing the attachments folder, the root directory of the tar file
|
||||||
|
# is the directory name at the time of packing
|
||||||
|
local RESTORE_FILE_ATTACHMENTS_DIRNAME=$(tar -tf "${DATA_ATTACHMENTS}" | head -n 1 | xargs basename)
|
||||||
|
local DATA_ATTACHMENTS_EXTRACT="${DATA_ATTACHMENTS}.extract"
|
||||||
|
|
||||||
rm -rf "${DATA_ATTACHMENTS}"
|
rm -rf "${DATA_ATTACHMENTS}"
|
||||||
tar -x -C "${DATA_DIR}" -f "${RESTORE_FILE_ATTACHMENTS}"
|
mkdir "${DATA_ATTACHMENTS_EXTRACT}"
|
||||||
|
tar -x -C "${DATA_ATTACHMENTS_EXTRACT}" -f "${RESTORE_FILE_ATTACHMENTS}"
|
||||||
|
mv "${DATA_ATTACHMENTS_EXTRACT}/${RESTORE_FILE_ATTACHMENTS_DIRNAME}" "${DATA_ATTACHMENTS}"
|
||||||
|
rf -rf "${DATA_ATTACHMENTS_EXTRACT}"
|
||||||
|
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
color green "restore bitwarden_rs attachments successful"
|
color green "restore bitwarden_rs attachments successful"
|
||||||
@@ -187,6 +195,7 @@ function restore() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
init_env_dir
|
||||||
check_empty_input
|
check_empty_input
|
||||||
check_data_dir_exist
|
check_data_dir_exist
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user