Prepare backup of save game from XDG directories
This commit is contained in:
		
							parent
							
								
									9f072b8bfb
								
							
						
					
					
						commit
						414fc560fa
					
				|  | @ -0,0 +1,66 @@ | ||||||
|  | #!/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 | ||||||
|  | ## }}} | ||||||
|  | 
 | ||||||
|  | # }}} | ||||||
		Loading…
	
		Reference in New Issue