feat: support restore backup zip file
This commit is contained in:
@@ -8,8 +8,53 @@ RESTORE_FILE_ATTACHMENTS=""
|
|||||||
RESTORE_FILE_ZIP=""
|
RESTORE_FILE_ZIP=""
|
||||||
ZIP_PASSWORD=""
|
ZIP_PASSWORD=""
|
||||||
|
|
||||||
|
function clear_extract_dir() {
|
||||||
|
rm -rf ${RESTORE_EXTRACT_DIR}
|
||||||
|
}
|
||||||
|
|
||||||
function restore_zip() {
|
function restore_zip() {
|
||||||
color blue "restore bitwarden_rs backup zip file"
|
color blue "restore bitwarden_rs backup zip file"
|
||||||
|
|
||||||
|
local FIND_FILE_DB
|
||||||
|
local FIND_FILE_CONFIG
|
||||||
|
local FIND_FILE_ATTACHMENTS
|
||||||
|
|
||||||
|
if [[ -n "${ZIP_PASSWORD}" ]]; then
|
||||||
|
unzip -P ${ZIP_PASSWORD} ${RESTORE_FILE_ZIP} -d ${RESTORE_EXTRACT_DIR}
|
||||||
|
else
|
||||||
|
unzip ${RESTORE_FILE_ZIP} -d ${RESTORE_EXTRACT_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $? == 0 ]]; then
|
||||||
|
color green "extract bitwarden_rs backup zip file successful"
|
||||||
|
else
|
||||||
|
color red "extract bitwarden_rs backup zip file failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get restore db file
|
||||||
|
RESTORE_FILE_DB=""
|
||||||
|
FIND_FILE_DB=$(basename $(ls ${RESTORE_EXTRACT_DIR}/db.*.sqlite3))
|
||||||
|
if [[ -n "${FIND_FILE_DB}" ]]; then
|
||||||
|
RESTORE_FILE_DB="extract/${FIND_FILE_DB}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get restore config file
|
||||||
|
RESTORE_FILE_CONFIG=""
|
||||||
|
FIND_FILE_CONFIG=$(basename $(ls ${RESTORE_EXTRACT_DIR}/config.*.json))
|
||||||
|
if [[ -n "${FIND_FILE_CONFIG}" ]]; then
|
||||||
|
RESTORE_FILE_CONFIG="extract/${FIND_FILE_CONFIG}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get restore attachments file
|
||||||
|
RESTORE_FILE_ATTACHMENTS=""
|
||||||
|
FIND_FILE_ATTACHMENTS=$(basename $(ls ${RESTORE_EXTRACT_DIR}/attachments.*.tar))
|
||||||
|
if [[ -n "${FIND_FILE_ATTACHMENTS}" ]]; then
|
||||||
|
RESTORE_FILE_ATTACHMENTS="extract/${FIND_FILE_ATTACHMENTS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RESTORE_FILE_ZIP=""
|
||||||
|
restore_file
|
||||||
}
|
}
|
||||||
|
|
||||||
function restore_db() {
|
function restore_db() {
|
||||||
@@ -62,7 +107,9 @@ function restore_file() {
|
|||||||
|
|
||||||
RESTORE_FILE_ZIP="${RESTORE_DIR}/${RESTORE_FILE_ZIP}"
|
RESTORE_FILE_ZIP="${RESTORE_DIR}/${RESTORE_FILE_ZIP}"
|
||||||
|
|
||||||
|
clear_extract_dir
|
||||||
restore_zip
|
restore_zip
|
||||||
|
clear_extract_dir
|
||||||
else
|
else
|
||||||
if [[ -n "${RESTORE_FILE_DB}" ]]; then
|
if [[ -n "${RESTORE_FILE_DB}" ]]; then
|
||||||
check_restore_file_exist ${RESTORE_FILE_DB} "--db-file"
|
check_restore_file_exist ${RESTORE_FILE_DB} "--db-file"
|
||||||
|
|||||||
Reference in New Issue
Block a user