gog-sync/README.md

114 lines
2.8 KiB
Markdown

# GOG-SYNC
## **Please note that this is alpha software, you should not trust it.**
A small tool to synchronize the stuff in a [GOG](https://www.gog.com/) library
with a local folder.
It builds on the work of the [unofficial GOG API Documentation](https://gogapidocs.readthedocs.io/en/latest/).
This is the first time I am building something with rust, so beware :)
# Installation
Install from [crates.io](https://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.