Commit graph

272 commits

Author SHA1 Message Date
derrod
0b257e16dd [cli] Make sure -y works for egl-sync 2020-05-30 01:10:11 +02:00
derrod
918841a743 [cli] Add --yes alias for -y 2020-05-30 01:09:53 +02:00
derrod
028c2ca4e0 [cli] Add --egl-wine-prefix parameter for egl-sync setup 2020-05-30 01:07:45 +02:00
derrod
9231df9d44 [cli] Improve Lutris EGS detection and ask user before using it 2020-05-30 00:16:25 +02:00
derrod
5dac4d51f8 [cli] Add --unlink parameter for egs-sync to remove syncing 2020-05-30 00:11:21 +02:00
derrod
b027bade1c [cli] Create EGL Manifest directory if parent exists. 2020-05-29 23:43:04 +02:00
derrod
df566bb28f [cli] Use prompt helper for all y/n prompts 2020-05-29 23:09:21 +02:00
derrod
82f5adfaa4 [cli] Add egl-sync command 2020-05-29 23:09:02 +02:00
derrod
1d7d0eaa38 [core/cli] Import games installed via EGL w/o verification 2020-05-29 00:20:31 +02:00
derrod
2e2bb3ad41 [cli/core/models] Add install size to installed games 2020-05-28 23:05:36 +02:00
derrod
547ea4a2d4 [cli] Make list output more copy-paste friendly 2020-05-28 22:42:36 +02:00
derrod
9867c5f492 [cli] Check for game exe on import and add check override 2020-05-28 02:40:12 +02:00
derrod
f3f86836c8 [cli] Do not set type for --no-wine argument
Fixes #46
2020-05-27 21:18:02 +02:00
derrod
3d03d1a15d [cli] Apply strtobool to NO_WINE env var 2020-05-23 19:01:30 +02:00
derrod
c52cd09eb7 [cli/core] Add env var for wrapper and fix priority
Priority should always be command line > env var > config
2020-05-23 18:33:11 +02:00
derrod
6c9e3a1d62 [cli/core] Add flag to disable WINE 2020-05-23 18:29:43 +02:00
derrod
76a0ef6be7 [cli] Treat misc. verification failures as missing 2020-05-23 16:57:06 +02:00
derrod
c7d3846118 [cli] Do not print help for repair alias 2020-05-22 14:39:01 +02:00
derrod
de0b53710a [cli] Do not include timestamp in threaded logger 2020-05-22 14:31:59 +02:00
derrod
d62b45f899 [cli] Add message notifying users about the resumability of the downloads 2020-05-22 09:54:12 +02:00
derrod
38f5bbd934 [cli/core/models] Add support for importing already installed games
Fixes #10 though will need further improvement.
2020-05-20 14:06:55 +02:00
derrod
0d6bcf5950 [cli/core] Add support for launching games with a wrapper 2020-05-20 12:49:51 +02:00
derrod
c904bbfa19 [cli/core] Add repair command/flag
Fixes #27
2020-05-20 12:44:45 +02:00
derrod
5b2ebada78 [cli/utils/models] Add "verify-game" command to check game install 2020-05-19 18:29:16 +02:00
derrod
6278a21c77 [cli] sync-saves: Fix crash if metadata is missing 2020-05-19 16:14:20 +02:00
derrod
39f0d4c831 [cli/core/api] Allow setting locale/language
Fixes #35 as far as I can tell
2020-05-18 10:58:23 +02:00
derrod
812590db7c [cli] Fix crash if metadata does not have customAttributes 2020-05-17 15:36:34 +02:00
derrod
7d919c1f2a [cli] Fix launch command on Windows 2020-05-16 13:57:57 +02:00
derrod
730eaebec9 [cli/core/models] Fix a whole bunch of cloud save issues
- Games that didn't already have cloud saves weren't synced
- Games that didn't have local saves didn't behave correctly
- Games that only had local saves also didn't work correctly
2020-05-16 12:50:28 +02:00
derrod
8f656c5a25 [cli] Add flag to disable save game filtering 2020-05-16 12:19:44 +02:00
derrod
b55600f3e3 [cli] Allow specifying save path at install time
Also some minor cleanup
2020-05-14 16:40:27 +02:00
derrod
0f01e404a4 [cli/core/downloader] Support multiple filter arguments
Fixes #20
2020-05-14 16:32:08 +02:00
derrod
d648d29810 [cli] Automatic DLC installation and cloud save notice 2020-05-14 16:04:03 +02:00
derrod
98df2a0a38 [cli/core/models/utils] Add basic cloud save syncing support 2020-05-14 14:52:33 +02:00
derrod
0df80773c0 [cli] Add --code and --delete options to auth command
--code allows specifying an exchange code directly, e.g.
       when the web authentication is handled by an external
       application.
--delete simply deletes the current authentication data.
2020-05-12 20:01:25 +02:00
derrod
2945c6c91f [cli/core] Add flags/env vars to override WINE binary/prefix 2020-05-12 02:31:01 +02:00
derrod
f9d56b8d0d [cli] Sort savegames by manifest and app name 2020-05-12 02:22:10 +02:00
derrod
31530692ef [api/cli/core] Add extremely basic support for cloud saves
Currently only supports downloading all saves to a folder,
in the future it should support automatically extracting save
files to the proper directory (at least on Windows).
2020-05-06 15:40:04 +02:00
derrod
fefd414b8b [cli] Add --no-install alias for --download-only 2020-05-05 16:03:24 +02:00
derrod
3a08d526d5 [cli] Update CLI descriptions 2020-05-04 14:25:00 +02:00
derrod
4d0ac96bdc [cli/utils] Add aliases to download command
Eventually the "download" command will be changed to
set the --no-install flag by default and "update" will
become --update-only. For now remain backwards compatible
to give people a chance to adjust their scripts and habits.

Fixes #18
2020-05-04 14:21:25 +02:00
derrod
df55f18a78 [cli/core/downloader] Increase timeout and make it configurable
Fixes #16
2020-05-04 14:08:26 +02:00
derrod
69383c4788 [cli/core/downloader/utils] Add download reordering optimization
This is an optimization that aims to fix issues with some titles
such as World War Z that have lots of duplicated files resulting
in a very high runtime cache requirement.

The basic idea is to group files that share lots of chunks together
so the data can be removed from the cache sooner.

For most games this has little to no effect. For some titles with heavy
duplication it can reduce the RAM usage significantly however. For
instance the RAM requirements for World War Z are reduced from 5.3 GiB
to 499 MiB.

Partially fixes #17
2020-05-04 14:06:25 +02:00
derrod
261d0c636f [cli/core] Add some more logging 2020-05-01 19:57:42 +02:00
derrod
e976d44fb9 [cli] Fix help metavar for install tags 2020-05-01 15:08:48 +02:00
derrod
5557dc63ae [cli] only print install tags if present
Most games don't seem to use them anyway.
2020-05-01 14:36:50 +02:00
derrod
9b5620ca30 [cli/core/downloader] Support filtering by install tags
Also adds tsv option for list-files and fixes
no_install not being set with --exclude.

Install tags are only present in some titles, I'm not
entirely sure how EGL uses them. Perhaps to allow one
manifest to be used on different platforms? Or to only
download extra assets when the user wants to?

Either way, it's another filtering feature that may be
useful, though for now it's mostly another toy to explore
EPIC's distribution system with.
2020-05-01 14:34:34 +02:00
derrod
531af3f586 [cli/core/downloader] Add --exclude option to ignore files when downloading
Useful to exclude unnecessary files such as redistributables.

Can be used together with --prefix to exclude files that would
still match the specified --prefix.
2020-05-01 10:43:55 +02:00
derrod
c287649e07 [cli] Make app name optional for "list-files"
If reading from a file/url the app name is not necessary.
2020-04-30 12:31:23 +02:00
derrod
dc68617212 [cli] Change --prefix-filter to --prefix 2020-04-30 12:23:23 +02:00
derrod
39bfb47d75 [cli] Add csv/tsv option to list commands
Closes #6 and #13
2020-04-30 12:03:23 +02:00
derrod
31bf74b33d [cli] Set no_install flag when using --prefix options 2020-04-30 11:49:33 +02:00
derrod
7dacd7ba35 [cli/core] Fix manifest saving/loading
The refactoring didn't take into account that the raw
manifest data still needs to be accessible. Since I did
not want to modify the manifest model to hold the raw
data (waste of RAM), just make the methods return the
raw data again (at least for now)
2020-04-30 11:42:09 +02:00
derrod
8b63c482c1 [cli] Add new "list-files" command to list files in a manifest
Useful for use with the new --prefix option to search for which
prefix to use for the files you want to download.

Also supports creating a file usable with sha1sum/hashcheck to
verify a local installation manually as well as outputting the
list in csv format for other uses.
2020-04-30 11:14:18 +02:00
derrod
ef0ea26372 [cli/core/downloader] Add support for filtering downloaded files by prefix 2020-04-29 22:08:28 +02:00
derrod
63ff306fbf [cli] Fix offline flag 2020-04-29 14:05:30 +02:00
derrod
ba7133d7d6 [cli] clean up imports 2020-04-29 10:56:47 +02:00
derrod
8251db22d2 [cli/core] Allow overriding platform and UE filter in list-games 2020-04-28 15:32:38 +02:00
derrod
e0b4769af2 [cli/core] Add option to override platform when downloading
This can be used to download Mac or 32-bit builds if desired.

For example: legendary download Corydalis --platform Mac
Will download the Slime Rancher macOS build.

Closes #12
2020-04-28 15:12:17 +02:00
derrod
2be1d367df [cli] Add version and release codename to help 2020-04-28 06:14:17 +02:00
derrod
1b3ef31963 [cli/core] Fix config offline and environment overrides 2020-04-26 14:58:09 +02:00
derrod
b9b459d527 [cli] Fix missing space breaking URL in log message 2020-04-26 13:37:35 +02:00
derrod
50bd35683f [cli] Minor adjustments to parser setup and readability 2020-04-26 13:20:11 +02:00
derrod
0485a728e3 [cli/downloader] Migrate to Queue based logging for subprocesses 2020-04-26 13:19:28 +02:00
derrod
c20619d6e7 [cli] Rework CLI
- Class instead of giant main() function
- Uses subparsers for commands (cleaner)
- Will make future enhancements easier
2020-04-25 12:20:14 +02:00
derrod
0e81b87fac [cli] Simplify "is game installed" check 2020-04-24 06:38:11 +02:00
derrod
d8b629a66d [cli] Simplify manual login procedure 2020-04-24 06:37:40 +02:00
derrod
c388c0d516 [cli/core] Add overrides for old manifest and install dir 2020-04-21 19:59:58 +02:00
derrod
0b2917d1eb [cli] Ask for verification before installing/uninstalling 2020-04-20 01:27:16 +02:00
derrod
662f6e7bd0 [cli/core/models] Add basic support for DLCs 2020-04-20 01:27:06 +02:00
derrod
5eb51dfd11 [api/core/models] Add support for "Ownership Token"
Ownership verification tokens appear to be part of EPIC's DRM scheme,
they're basically just a JSON file with a token in it that's downloaded
from their API before launching.

This fixes launching games such as Just Cause 4.
2020-04-20 01:26:44 +02:00
derrod
e00e534f2c First public test version of legendary
Unfortunately the history from before this commit is lost to time. And
that's probably for the best.
2020-04-14 15:40:41 +02:00