Go to file
2017-05-04 16:37:16 +02:00
.vscode add a third variant for cs keys... 2017-03-23 15:18:18 +01:00
src push version 2017-05-04 16:29:31 +02:00
.editorconfig refactor naming to be more generic 2017-03-22 15:39:46 +01:00
.gitignore initial proof of concept 2017-03-19 14:50:58 +01:00
.gitlab-ci.yml Update .gitlab-ci.yml 2017-03-21 12:36:38 +00:00
Cargo.lock push version 2017-05-04 16:37:16 +02:00
Cargo.toml push version 2017-05-04 16:29:31 +02:00
CHANGELOG.md push version 2017-05-04 16:29:31 +02:00
LICENSE add documentation and license 2017-03-20 19:00:27 +01:00
README.md push version 2017-05-04 16:29:31 +02:00

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": ".",
  "osFilters": [],
  "languageFilters": [],
  "skipMovies": false,
  "skipGames": false
}
  • gameStorage: Where to save games
  • movieStorage: Where to save movies
  • 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

Check on gog.com which languages are available.

An incomplete list of resolutions on gog:

  • DVD
  • 576p
  • 720p
  • 1080p
  • 4k

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.