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