summarylogtreecommitdiffstats
path: root/evebackup
diff options
context:
space:
mode:
Diffstat (limited to 'evebackup')
-rw-r--r--evebackup52
1 files changed, 43 insertions, 9 deletions
diff --git a/evebackup b/evebackup
index b9e45520a88d..c1db57fa0bce 100644
--- a/evebackup
+++ b/evebackup
@@ -2,18 +2,52 @@
set -e
-# WIP use at own risk
-
. ./evesetup.shlib
+backup_settings() {
+for SERVER in tranquility singularity duality thunderdome ;do
+ CLPROFILE="$(ls -d *_$SERVER 2>/dev/null || true)"
+ [ "x$CLPROFILE" = "x" ] && continue
+ if [ ! -f "$BACKUPDIR/$SERVER-settings_current.7z" ] ;then
+ MSGSTR="Preparing EVE Backup, please run $CMDSTR again."
+ else
+ mv "$BACKUPDIR/$SERVER-settings_current.7z" "$BACKUPDIR/$SERVER-settings.7z"
+ MSGSTR="User settings in $BACKUPDIR saved."
+ fi
+ cd "$CLPROFILE"
+ 7z u -t7z -xr!Browser "$BACKUPDIR/$SERVER-settings.7z" \
+ -u- -u!"$BACKUPDIR/$SERVER-settings_current.7z" "settings_*" >/dev/null
+ cd ..
+done
+}
+
+restore_settings() {
+for SERVER in thunderdome duality singularity tranquility ;do
+ if [ ! -f "$BACKUPDIR/$SERVER-settings.7z" ] ;then
+ MSGSTR="No settings in $BACKUPDIR found."
+ continue 2
+ fi
+ case $SERVER in
+ tranquility) SERVER_SHORT=tq ;;
+ singularity) SERVER_SHORT=sisi ;;
+ *) SERVER_SHORT=$SERVER ;;
+ esac
+ [ -d c_"$SERVER_SHORT"_"$SERVER" ] || mkdir c_"$SERVER_SHORT"_"$SERVER"
+ 7z x "$BACKUPDIR/$SERVER-settings.7z" -oc_"$SERVER_SHORT"_"$SERVER" -y >/dev/null
+ MSGSTR="User settings from $BACKUPDIR restored."
+done
+}
+
SHAREDIR=$(getval SharedCacheFolder)
-BCKUPDIR=$(xdg-user-dir DOCUMENTS 2>/dev/null || true)/EVE
-[ -d "$BCKUPDIR" ] || BCKUPDIR=$HOME
+BACKUPDIR=$(xdg-user-dir DOCUMENTS)/EVE
+CMDSTR=$(basename $0)
-USERCONF=wineenv/drive_c/users/$(whoami)/Local\ Settings/Application\ Data/CCP/EVE
+cd "${SHAREDIR}wineenv/drive_c/users/$(whoami)/Local Settings/Application Data/CCP/EVE"
-cd $SHAREDIR
-tar czf $BCKUPDIR/eve_userconf_$(date +%F).tar.gz \
- --exclude=cache --exclude=Browser --exclude=history.txt "$USERCONF"
+case $CMDSTR in
+ evebackup) backup_settings ;;
+ everestore) restore_settings ;;
+ *) exit 1 ;;
+esac
-desktop_msg "User configuration in $BCKUPDIR stored."
+desktop_msg "$MSGSTR"