scripts/games/save.game.xdg

67 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# Purpose {{{
## Try to centralize all game's save that respect XDG specifications in order to:
## easily backup all save
## easily restore it
## be able to access it from anywhere
## … all you can do with a Nextcloud (share, versionning,…)
##
## 1. Move save directories of a list of known games from XDG's
## directories to a remote directory (Nextcloud, remote mount,…).
## Then create a symlink in XDG directories to the remote game
## directory.
##
## 2. If a directory doesn't exist, check if a remote one is
## available and symlink it.
##
## KISS: Only manage save directories from Steam userdata. For other
## paths (Steam,…) check other scripts.
# }}}
# Vars {{{
debug=0
## XDG config {{{
XDG_CONFIG_HOME="${HOME}/.config"
xdg_config="$(printf "%s" "${XDG_CONFIG_HOME}" | sed -e "s;${HOME}/;;")"
config_games="..."
## }}}
## XDG data {{{
XDG_DATA_HOME="${HOME}/.local/share"
xdg_data="$(printf "%s" "${XDG_DATA_HOME}" | sed -e "s;${HOME}/;;")"
data_games="..."
## }}}
remote_dir="${HOME}/Nextcloud/games/linux.sgl.script"
# }}}
# Tests {{{
## Ensure remote dir exist {{{
if [ ! -d "${remote_dir}" ]; then
printf '\e[1;35m%-6s\e[m\n' "The directory for save game doesn't exists: ${remote_dir}"
exit 1
fi
## }}}
## Ensure XDG directories exist {{{
for xdg_dir in "${xdg_config}" "${xdg_data}"; do
local_xdg_path="${HOME}/${xdg_dir}"
if [ ! -d "${local_xdg_path}" ]; then
printf '\e[1;35m%-6s\e[m\n' "The XDG directory ${xdg_dir} doesn't exists yet… Should it must be create (for restoration,…) [Y/n]?"
read -r create_local_xdg
if [ "${create_local_xdg}" = "" ] || [ "${create_local_xdg}" = "Y" ] || [ "${create_local_xdg}" = "y" ]; then
mkdir -p -- "${local_xdg_path}"
else
printf '\e[1;35m%-6s\e[m\n' "XDG directory (${xdg_dir}) doesn't exists, abort script."
exit 2
fi
fi
done
## }}}
# }}}