.vscode | ||
src | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
README.md |
GOG-SYNC
Please note that this is alpha software, you should not trust it.
A small tool to synchronize the stuff in a GOG library with a local folder.
It builds on the work of the unofficial GOG API Documentation.
This is the first time I am building something with rust, so beware :)
Installation
Install from crates.io.
cargo install gog-sync
Configuration
The configuration file is in the config folder as described by the xdg specification
with a prefix of gog-sync
.
For example on macOS or Linux
~/.config/gog-sync/config.json
A bare configuration with default values before first use:
{
"gameStorage": ".",
"movieStorage": ".",
"content": {},
"data": {},
"extras": {},
"osFilters": [],
"languageFilters": [],
"skipMovies": false,
"skipGames": false
}
- gameStorage: Where to save games
- movieStorage: Where to save movies
- content: A map, content id => hash
- data: A map, data url => hash
- extras: A map, extra url => hash
- osFilters: An array of operating systems. If it is not empty, game data is limited to the ones in the list.
- languageFilters: An array of languages. If it is not empty, game data is limited to the ones in the list.
- resolutionFilters: An array of resolutions. If it is not empty, movie data is limited to the ones in the list.
- skipMovies: Whether to skip movie content
- skipGames: Whether to skip game content
Valid values for osFilter:
linux
mac
windows
An incomplete list of languages on gog:
english
český
deutsch
español
français
italiano
magyar
polski
русский
中文
An incomplete list of resolutions on gog:
DVD
576p
720p
1080p
4k
You should have no need of changing content
, data
or extras
, as these are
used to determine whether specific content is up to date.
Usage
If you want to see the information log while running set RUST_LOG=info
.
USAGE:
gog-sync [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
-g, --skip-games Skip game content.
-f, --skip-movies Skip movie content.
-V, --version Prints version information
OPTIONS:
-s, --game-storage <FOLDER> Sets the download folder (defaults to the working directory).
-l, --language <FILTER> Only sync files for this comma seperated list of languages.
-m, --movie-storage <FOLDER> Sets the download folder for movies (defaults to the working directory).
-o, --os <FILTER> Only sync files for this comma seperated list of operating systems.
Valid values are 'linux', 'mac' and 'windows'.
-r, --resolution <FILTER> Only sync movies for this comma seperated list of resolutions.
gog-sync
Normal invocation, uses the current working directory as storage if not configured otherwise.
gog-sync -s ~/Downloads/games
Overwrite the default or configured storage path.
gog-sync -l english -o linux,windows
Only sync english installers and only for linux and windows systems.