Go to file
2017-03-22 15:39:46 +01:00
.vscode add error handling 2017-03-20 13:14:49 +01:00
src refactor naming to be more generic 2017-03-22 15:39:46 +01: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 take the whole http response and not only the last part 2017-03-22 14:11:57 +01:00
Cargo.toml update changelog 2017-03-22 09:56:25 +01:00
CHANGELOG.md refactor naming to be more generic 2017-03-22 15:39:46 +01:00
LICENSE add documentation and license 2017-03-20 19:00:27 +01:00
README.md refactor naming to be more generic 2017-03-22 15:39:46 +01: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": ".",
  "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. Valid values are linux, mac and windows
  • languageFilters: An array of languages. If it is not empty, game data is limited to the ones in the list.
  • skipMovies: Whether to skip movie content
  • skipGames: Whether to skip game content

An incomplete list of languages on gog:

  • english
  • český
  • deutsch
  • español
  • français
  • italiano
  • magyar
  • polski
  • русский
  • 中文

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.

LAGS] [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'.

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.