Commit graph

324 commits

Author SHA1 Message Date
derrod
b6cb31df8b [cli/models/utils] Move strtobool into legendary utils
Fixes deprecation warning on Python 3.10+
2021-12-28 17:37:26 +01:00
derrod
1fd8acdee4 [cli] Use argparse choices instead of manual check 2021-12-28 14:21:11 +01:00
derrod
599e4766b2 [cli] Fix some formatting 2021-12-28 14:03:26 +01:00
derrod
6b91c5779b [cli] Add get-token flag to get bearer token rather than exchange code 2021-12-28 10:57:22 +01:00
derrod
335619ff79 [cli] Do not override platform in "info" command
Also improve missing asset error.
2021-12-28 10:09:08 +01:00
derrod
363ac15faa [cli] Error out if no asset exists for specified platform 2021-12-28 10:04:37 +01:00
derrod
352d3d2d0d [cli] Hide -c/--config-file option
Using it can cause a bunch of problems, and I don't want to
encourage its use, so deprecate/hide it for now, then remove
it once I have a better solution.
2021-12-22 08:28:23 +01:00
derrod
0e72950382 [cli] Add -H/--full-help and only show command list by default
The full help has gotten too long, just print the commands by default.
2021-12-22 08:24:23 +01:00
derrod
8c087fc90e [cli] Add external activation to "info" 2021-12-21 23:59:00 +01:00
derrod
508c6a3a58 [cli] Add "get-token" debug command 2021-12-21 23:58:40 +01:00
derrod
71633333b7 [cli] Remove non-functional Origin activation on Linux 2021-12-21 23:28:24 +01:00
derrod
c3ade2994e [cli/core/utils] Re-enable SDL for Mac platform
Currently, this only affects Fortnite and UE.
2021-12-17 01:25:24 +01:00
derrod
6c35504058 [cli] Fix wrong type in cleanup command
Fixes #378
2021-12-14 14:30:33 +01:00
derrod
48cab6af57 [cli] Also activate Ubisoft DLC (untested) 2021-12-11 18:50:30 +01:00
derrod
01ec2ccd89 [cli] Error out if no game files are found, suggest corrected path 2021-12-11 16:34:07 +01:00
derrod
797598322d [cli] Fix checking for game executable on import 2021-12-11 16:23:12 +01:00
derrod
6106433153 [cli] Disable SDL for Mac titles 2021-12-08 00:22:44 +01:00
derrod
e0ad2171bf [cli] Add notice about Ubisoft activation to list-games 2021-12-06 19:33:55 +01:00
derrod
db5cd43047 [cli] Add Origin activation process to "activate" command 2021-12-06 19:33:36 +01:00
derrod
eb8bc3713b [cli] Rename --include-non-installable to -T/--third-party 2021-12-06 19:31:39 +01:00
derrod
9d18ef03fa [cli/core/models] Add property for partner link id/type 2021-12-06 18:10:30 +01:00
derrod
4dd495e2f5 [cli] Add aliases for --uplay 2021-12-06 13:20:48 +01:00
derrod
82376e3d57 [cli] Allow setting default platform via config 2021-12-03 21:01:30 +01:00
derrod
e11dd8734f [cli] Make pre-installation check results stand out more 2021-12-03 18:01:24 +01:00
derrod
db1a6706e4 [cli] I a word when opening the auth/link URLs 2021-12-03 17:54:14 +01:00
derrod
e1b5245252 [cli] Improve Ubisoft activation messaging 2021-12-03 17:23:24 +01:00
derrod
c8189460c2 [cli/core] Fix some plurals 2021-12-03 17:21:48 +01:00
derrod
e71ab3155e [cli/api/models] Add "activate" command to redeem Uplay games 2021-12-03 14:07:57 +01:00
derrod
a8e35e9f3b [cli] Show download url for PyInstaller build updates 2021-12-03 12:47:07 +01:00
derrod
c33f9a0084 [cli] Enable save-sync of Mac titles 2021-12-02 17:06:08 +01:00
derrod
6f7989ab50 [cli/core/utils/lfs] Also enable update notification on macOS 2021-12-02 16:51:48 +01:00
derrod
9e21a81c96 [cli] install: Set platform when getting game metadata 2021-12-02 16:16:52 +01:00
derrod
1dfc5aabe7 [cli/core/models/utils] macOS cloud save support 2021-12-02 15:24:01 +01:00
derrod
4eaa608370 [cli] Set default platform to Mac when running on macOS 2021-12-02 15:23:16 +01:00
derrod
aeecaa4d3e [cli] Show warning if platform may be invalid 2021-12-02 15:22:13 +01:00
derrod
8fb4c56730 [cli] Fix some remaining platform-unawareness 2021-12-02 14:34:29 +01:00
derrod
356f0f84f5 [cli/core/models] Access namespace/catalog item id directly 2021-12-02 14:28:21 +01:00
derrod
999ff36667 [cli] Include platform in installed list
Also remove stray debug print
2021-12-02 13:35:56 +01:00
derrod
fe912246a5 [cli] Fix variable overlap 2021-12-02 13:31:55 +01:00
derrod
2ff6712932 [cli] Fix help text for --platform options 2021-12-01 22:14:49 +01:00
derrod
260c0e97a2 [cli] Include platform in status output 2021-12-01 22:04:30 +01:00
derrod
24832ea074 [cli] Add --platform to import 2021-12-01 21:30:15 +01:00
derrod
de24ee8157 [cli] Do not crash if DLC is missing metadata for some reason
Fixes #371
2021-12-01 21:19:40 +01:00
derrod
0d1592266b [cli] Set platform argument default 2021-12-01 21:06:39 +01:00
derrod
e8207d53cd [cli/core] Ensure update checks use the right platform(s) 2021-12-01 21:02:38 +01:00
derrod
f280d53496 [cli/core/lfs] Add support for mixing platforms 2021-12-01 20:57:43 +01:00
derrod
106ed16a49 [cli/core] Do not delete merely incomplete saves unless user says so 2021-10-21 14:27:08 +02:00
derrod
355b1107e6 [cli/core] Add "clean-saves" command to remove obsolete/broken cloud save data 2021-10-21 13:26:36 +02:00
derrod
2146a45104 [cli] Explicitly set CSV/TSV line terminator
Fixes #358
2021-10-21 11:39:11 +02:00
derrod
856c5ef2ee [cli] Abort install if game is managed by third party store 2021-10-16 19:47:19 +02:00
derrod
8c002a76e0 [cli/core] Replace old manual game store query with new property 2021-10-16 19:44:15 +02:00
derrod
7f53746ee6 [cli] Show note when no game information is available 2021-10-16 19:33:59 +02:00
derrod
b57735abf3 [core] Show warning in "info" if game asset is unavailable
Also disable manifest download as that will probably fail.
2021-10-16 18:59:54 +02:00
derrod
fa9e650ea1 [cli] Ensure "info" JSON output items are null if empty 2021-10-16 18:58:20 +02:00
derrod
27c92e3555 [cli] Add more descriptive error message when directory no longer exists
Fixes #258
2021-10-10 17:17:42 +02:00
derrod
6d3a8af70b [cli] Make it possible to uninstall DLC 2021-10-10 17:08:05 +02:00
derrod
6cef1a1410 [cli] Fix "info" command for games without asset data (e.g. Origin) 2021-10-10 12:36:38 +02:00
derrod
9693a0b8ff [cli] Do not print empty info items 2021-10-10 12:36:16 +02:00
derrod
8da4b55987 [cli] Fix --dry-run for Origin launch 2021-10-10 12:33:42 +02:00
derrod
3aad87e1a9 [cli] "info" command: break down install/download size by install tag 2021-10-09 17:33:56 +02:00
derrod
ea01cb6302 [cli] Add "--skip-dlc" flag to install command 2021-10-08 10:20:39 +02:00
derrod
ce89965274 [cli] Add automatic DLC import to "import-game" 2021-10-08 10:20:23 +02:00
derrod
2f6f043716 [cli] Do not import DLC if base game is not installed
Fixes #351
2021-10-08 09:43:36 +02:00
derrod
6486d02daa [cli] Resolve app name alias when adding new alias 2021-10-07 17:06:39 +02:00
derrod
b857967dfa [cli/core] Add WebView killswitch to Legendary update data
In case epic breaks it, this at least lets us disable it remotely.
2021-10-07 05:20:08 +02:00
derrod
96ff42f05a [cli/utils] Skip logout when using Qt/GTK, faster logout on Windows 2021-10-07 05:10:14 +02:00
derrod
15591a1e2d [cli/utils] Add support for logging in via web view
Also adds pywebview as optional dependency to setup.py
2021-10-06 10:54:25 +02:00
derrod
26715695d8 [cli] Load JSON if user pastes full response rather than just SID 2021-10-06 07:24:33 +02:00
derrod
4e539c4fd5 [cli] Print manifest install tags in "info" command 2021-10-05 09:47:59 +02:00
derrod
ead2bdc16c [cli] Add global "-J" option to pretty-print JSON 2021-10-05 08:47:28 +02:00
derrod
56fdfba787 [cli] Add JSON output to "info" command 2021-10-05 08:41:57 +02:00
derrod
8460fdfd2a [cli/core/lfs] Add support for trying multiple encryption keys
Should Epic change the key used for EGL in the future we want to
be backwards-compatible to existing (outdated) EGL installs as well
as new ones without having to push out a new release.

Also forces updating of version data before attempting the import to
get the latest key(s) and adds a log message when auth data is deleted.
2021-10-05 07:34:52 +02:00
derrod
09c52b66ff [cli] Log app title/name when preparing download 2021-10-02 23:09:59 +02:00
derrod
0b97cdeeef [cli] Add alias management commands 2021-10-02 22:54:56 +02:00
derrod
0d8b74a9e0 [cli/core/utils/lfs] Add automatic alias generation 2021-10-02 21:10:25 +02:00
derrod
8f6cb9c856 [cli] Add alias feature for app names 2021-10-02 07:41:11 +02:00
derrod
f22c8d0ab6 [cli] Add --skip-sdl and --disable-sdl options
--skip-sdl simply skips the prompt and selects the defaults.
--disable-sdl disables selective downloading for the title and
will reset existing SDL settings (if any). Can be re-enabled
with --reset-sdl or by removing the config option manually.

The combination "--reset-sdl --disable-sdl" is allowed and will
reset existing tags while keeping SDL disabled.
2021-09-29 08:05:37 +02:00
derrod
f9dad549c3 [cli] Add manifest size and fix crash with no DLC 2021-09-28 09:43:49 +02:00
derrod
ff29b949cb [cli] Add "--with-dlcs" flag to automatically install all DLCs 2021-09-28 08:07:28 +02:00
derrod
3a608610f3 [cli] Add "info" command for app metadata 2021-09-28 07:58:50 +02:00
derrod
4706a42cee [cli] Verify app name to be an Origin title when using --origin 2021-09-28 05:57:39 +02:00
derrod
7509550eb1 [cli/core] Add option to force refresh game metadata 2021-09-28 05:56:19 +02:00
derrod
dbc4131ec2 [cli] Use new launch command method in Origin launch
By doing this support for wrappers (e.g. Proton) is now also included.
2021-09-28 05:23:39 +02:00
derrod
156b4716f4 [cli] Add --json to Origin launch as well 2021-09-28 05:20:40 +02:00
derrod
b5d4224664 [cli/core] Only return legendary-defined environment variables 2021-09-28 05:07:06 +02:00
derrod
888d62a96d [cli/core/models] Refactor launch parameters and add --json option
Primarily intended to make it easier for third-party applications
(mainly Heroic) to handle launch options on their own by simply
taking the necessary information from legendary and ignoring
user-defined stuff.

Also useful for debugging.
2021-09-28 04:06:54 +02:00
derrod
ee2432c443 [cli/core/lfs] Allow specifying custom config file 2021-09-28 03:07:15 +02:00
derrod
b319cb505c [cli/downloader.mp] Explicitly set UTF-8 encoding for resume/repair file
Fixes #297
2021-09-28 02:42:17 +02:00
derrod
730225c06b [cli] Include DLC install size 2021-09-10 20:36:51 +02:00
derrod
fbd0df1ecc [cli/core] Include DLCs in installed games list
This should be replaced later on by including information
about the main game in the InstalledGame metadata.
2021-09-10 20:30:53 +02:00
derrod
cffd9040f7 [cli] Strip whitespace from game titles
Yoku's Island Express has a \t for some reason...
2021-09-10 16:09:15 +02:00
derrod
21eac6ecfa [cli] Enable (very manual) Origin linking on Linux 2021-09-08 10:43:30 +02:00
derrod
e8a3a3ec8d [cli] Use pyinstaller check rather than OS name only 2021-09-08 10:27:26 +02:00
derrod
b12798e6b0 [cli/core/lfs/utils] Fetch SDL data from API 2021-09-05 09:41:54 +02:00
derrod
ba6ec3ecca [cli/core] Add option to launch games via Origin (Windows only) 2021-09-03 22:59:47 +02:00
derrod
6876371325 [cli] Disable update notice if JSON/CSV/TSV output are used 2021-09-03 21:11:09 +02:00
derrod
d82870a5d3 [cli] Show notice on non-Windows about update delays 2021-09-03 20:14:00 +02:00
derrod
d21e002272 [cli] Force check for updates when trying to login 2021-09-03 20:12:37 +02:00
derrod
315bdfb4a4 [cli/core/lfs] Enable update check by default, make notice optional
This will allow legendary to force checking for updates in critical
situations where it may be required. Also enables updating configuration
data on Linux by default.
2021-09-03 20:10:30 +02:00
derrod
0acfc47b33 [cli] Properly catch exception on import 2021-09-03 20:08:20 +02:00
derrod
c53ac14c64 [cli] Catch exception if EGL path resolution fails 2021-09-03 19:23:25 +02:00
derrod
d6e9c5ef46 [cli] Fix EGL Local AppData resolution with newer WINE versions
Closes #332
2021-09-03 19:00:56 +02:00
derrod
a465966954 [api/cli/core/lfs] Add Legendary update check 2021-09-02 19:31:04 +02:00
derrod
4d5539c889 [cli/utils] Automatically create missing config sections 2021-09-02 19:31:04 +02:00
derrod
a80244ed37 [cli/core] Add flag to show non-installable games/DLCs
This primarily means titles that have to be activated on external stores
such as Battlefront II which has to be installed via Origin.

Addresses half of #202
2021-09-01 15:28:25 +02:00
derrod
d86039dd9b [cli/core] Add option to disable HTTPS for downloads
The EGS client does not use HTTPS for downloads in order to facilitate
the use of tools such as LanCache that use DNS based CDN redirection.

Legendary should be usable in such an environment as well,
but HTTPS will remain on by default.

See: https://lancache.net/news/2019/06/15/steamcache-is-rebranding-to-lancachenet/
2021-08-09 11:31:03 +02:00
derrod
1760c34703 [cli/core] Add option for preferred CDN host
Allows a user to specify a preferred CDN via config or command line.
Also changes selection process to match EGS client
(no random selection anymore).
2021-08-09 11:17:15 +02:00
derrod
a4cbf5892a [cli/utils] Save manually specified install tags to config
Requires some testing, may cause issues with supported SDL titles.
2021-06-17 15:21:46 +02:00
derrod
dd3c0429fe [cli] Filter files by install tag before verifying 2021-06-17 15:08:31 +02:00
derrod
a2280edea8 [cli/core] Add option to override launch executable 2021-01-10 14:24:06 +01:00
derrod
ee3b3fb9fe Fix various typos and some style complaints
Closes #175
2021-01-02 06:53:21 +01:00
derrod
58edb22fce [cli] egl-sync: Error out if asset information missing 2021-01-02 06:31:47 +01:00
derrod
ba867f1ce6 [cli] Sort game names case-insensitively 2020-12-23 18:04:53 +01:00
derrod
f42d63767c [cli] Fix crash when not installing 2020-12-17 16:31:38 +01:00
derrod
1226cd1b08 [cli] Remove untagged files when install tags changed 2020-12-17 15:25:01 +01:00
derrod
51c8b67f91 [cli] Add flag to reset SDL selection 2020-12-17 15:24:59 +01:00
derrod
efad90d951 [cli] Do not run SDL for DLC 2020-12-17 15:23:06 +01:00
derrod
dca216d053 [cli] Fix repair-and-update not working correctly 2020-12-17 15:23:06 +01:00
Simão Gomes Viana
34677cc02e
[cli/README] Fix typo in CLI help (manfiests -> manifests) (#157) 2020-12-16 20:21:20 +01:00
derrod
1430e321e6 [core/utils] Miscellaneous whitespace, comment, text fixes 2020-12-16 12:37:12 +01:00
derrod
7609553b12 [core/utils] More generic/robust selective dl, add support for Fortnite
Existing installations should ask for the install tags that should be used
on first update. It will now be easier to add more games as well.
2020-12-16 12:35:31 +01:00
derrod
80153d07b5 [cli/utils] Add Cyberpunk 2077 language pack hack 2020-12-08 06:43:43 +01:00
derrod
22b7db7a29 [cli] Allow -y/--yes to be specified as part of the subcommand arguments 2020-11-21 14:30:30 +01:00
derrod
8206283755 [core/cli] Warn/Fail if game requires Uplay
Addresses #69 but does not fix it.
2020-11-02 19:08:06 +01:00
derrod
80841f89bb [cli] Add "--keep-files" to uninstall without deleting 2020-11-02 15:55:36 +01:00
derrod
477827033e [cli/lfs] Add "cleanup" command to remove unused files 2020-11-02 15:53:11 +01:00
derrod
f03a0a46fd [cli] Add --delta-manifest override 2020-09-09 10:29:57 +02:00
derrod
515705c061 [cli] list-files: Error out of invalid AppName specified
Closes #94
2020-09-09 09:53:05 +02:00
derrod
b8b8a5d953 [cli] Add --version and --debug aliases for -V/-v 2020-09-08 18:10:05 +02:00
derrod
b7fd2031f9 [cli] Fix status command when not logged in yet 2020-09-08 17:50:36 +02:00
derrod
6f53964b49 [cli] Add --json output format for some commands 2020-09-08 05:12:14 +02:00
derrod
acb7476a22 [cli] Add basic "status" command 2020-09-08 04:50:14 +02:00
derrod
5b855b0d3e [cli] Add note about potentially missing games when importing 2020-09-08 04:38:29 +02:00
derrod
7575b8f3a7 [cli/core] Prevent crash when game asset metadata is missing 2020-09-08 04:25:34 +02:00
derrod
e9e40a3782 [cli] Add install size and path to CSV/TSV output
Fixes #91 and closes #68
2020-09-05 05:25:13 +02:00
derrod
ade9080152 [cli] Convert import path to absolute
Fixes #61
2020-09-05 05:21:36 +02:00
derrod
6711897750 [cli] Add flags for new installer options
'--repair-and-update' for updating when repairing (duh)
'--ignore-free-space' to make the free space error a warning instead
'--disable-delta-manifests' to disable the use of delta manifests

Also closes #70
2020-09-05 05:20:27 +02:00
derrod
0a5b53ab6f [cli/core/utils] Only remove files in manifest during uninstall
Some games are using the installation directory to store savegames.
To avoid deleting those, only remove files that are actually in the
manifest and only delete the directory if it is empty.
2020-06-10 18:21:47 +02:00
derrod
4720b59d99 [core/cli] Fix typos in function names 2020-06-05 15:01:02 +02:00
derrod
0e2a61aca5 [cli] list-installed: Show warning if game dir is missing 2020-06-02 12:12:42 +02:00
derrod
1ec6ef1899 [cli] launch: error out if game directory is missing 2020-06-02 12:12:03 +02:00
derrod
2b2e91f372 [cli] Add --show-dirs option to print install directory 2020-06-02 07:54:51 +02:00
derrod
818ac59872 [cli] Add --disable-sync for egl-sync 2020-06-01 12:58:47 +02:00
derrod
de5a1095e0 [cli] Add flag to save/reset launch parameters in config 2020-06-01 08:40:00 +02:00
derrod
a0329a73a9 [cli] Fix -y/--yes for egl-sync auto 2020-06-01 08:18:13 +02:00
derrod
50d6eb02fa [cli] Check and save path specified with --egl-manifest-path 2020-06-01 08:16:36 +02:00
derrod
92c6fd8601 [cli] Fix --egl-wine-prefix not setting programdata path 2020-06-01 08:13:47 +02:00
derrod
6051edc636 [cli] Show warning for incorrect -y/--yes usage 2020-06-01 08:12:24 +02:00
derrod
5eecabfb4a [cli/egl] Make EGL auth import work on Linux 2020-05-31 03:16:03 +02:00
derrod
3063f02db3 [cli/core] Implement newer Epic authentication scheme
Fixes #52
2020-05-31 02:01:50 +02:00