69 lines
2 KiB
Bash
Executable file
69 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)
|
|
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
|
|
|
. /etc/profile
|
|
|
|
# NOTE: to customize your backups, create a backuptool.conf file in
|
|
# /storage/.config like this:
|
|
|
|
# LOCATIONS=(
|
|
# /storage/.config/retroarch/*
|
|
# /storage/roms/savestates/*
|
|
# /some/other/folder/file.name*
|
|
# )
|
|
|
|
BACKUPFOLDER="/storage/roms/backup"
|
|
BACKUPFILE="${BACKUPFOLDER}/${OS_NAME}_BACKUP.zip"
|
|
mkdir -p ${BACKUPFOLDER}
|
|
|
|
DEFAULT=(
|
|
/storage/.config/fancontrol.conf
|
|
/storage/.config/backuptool.conf
|
|
/storage/.cache/bluetooth/*
|
|
/storage/.cache/connman*
|
|
/storage/.config/system/configs/system.cfg
|
|
/storage/.config/ppsspp/*
|
|
/storage/.config/retroarch/*
|
|
/storage/.config/moonlight/*
|
|
/storage/.config/game/*
|
|
/storage/.emulationstation/es_*.cfg
|
|
/storage/.emulationstation/scripts/*
|
|
/storage/.emulationstation/themesettings/*
|
|
$(find /storage/.emulationstation/themes/* -type d -maxdepth 0 -not -path "*es-theme-art-book-next" -not -path "*system-theme")
|
|
)
|
|
|
|
if [ -e "/storage/.config/backuptool.conf" ]
|
|
then
|
|
source /storage/.config/backuptool.conf
|
|
if [ ! $? = 0 ]
|
|
then
|
|
WARN="Error loading custom backuptool configs. Using defaults."
|
|
${DEBUG} && echo "${WARN}"
|
|
logger -t backuptool "${WARN}"
|
|
COMPRESSLOCATIONS=(${DEFAULT[@]})
|
|
else
|
|
COMPRESSLOCATIONS=(${LOCATIONS[@]})
|
|
fi
|
|
else
|
|
COMPRESSLOCATIONS=(${DEFAULT[@]})
|
|
fi
|
|
|
|
case "${1}" in
|
|
"restore")
|
|
unzip -o ${BACKUPFILE} -d /
|
|
;;
|
|
"backup")
|
|
if [ -f ${BACKUPFILE} ]
|
|
then
|
|
TODAY=`date +%y-%m-%d_%H_%M_%S`
|
|
ARCHIVEFILENAME="ARCHIVED_${OS_NAME}_BACKUP-${TODAY}.zip"
|
|
mv ${BACKUPFILE} "${BACKUPFOLDER}/${ARCHIVEFILENAME}"
|
|
fi
|
|
[ -f "${BACKUPFILE}" ] && rm "${BACKUPFILE}"
|
|
zip -9 -r ${BACKUPFILE} \
|
|
${COMPRESSLOCATIONS[@]}
|
|
;;
|
|
esac
|