Commit graph

718 commits

Author SHA1 Message Date
Mathis Dröge d8af06c936 [cli] Rename "yes" -> "skip_prereqs" in _handle_postinstall
The name "yes" was a little confusing, you'd think it means
"Yes, install all prerequisites" while it actually skips them
2022-07-18 08:00:26 +02:00
derrod a73d0694f6 [core] Handle ConnectionError exception on login
Fixes #447
2022-07-06 16:35:30 +02:00
Mathis Dröge f9a2dae282
[cli] Properly remove EOS overlay when no prefix is supplied (#441) 2022-06-27 08:32:23 +02:00
derrod 7a617d35f3 [cli] Fix double-click check breaking macOS/Linux execution
By always trying to import windows_helpers and thus winreg on
non-Windows things would break.
2022-06-24 13:48:44 +02:00
derrod e5ec8e25b3 [cli] Just fix some spellcheck complaints
"shoouldn't" lol
2022-06-24 13:43:31 +02:00
derrod dcfdfbc520 Bump version 2022-06-24 13:33:58 +02:00
derrod 83072d0b39 [cli] Make missing manifests more easily recoverable 2022-06-24 13:33:58 +02:00
derrod 410c840aa4 [core] Remove auth() (never going to be implemented) 2022-06-24 13:33:57 +02:00
Mathis Dröge 9e145278d5
[cli/utils] Open CMD when exe is double-clicked (#436)
This opens up CMD if
- the exe file was double-clicked
- no arguments are provided
- we're on Windows
2022-06-24 12:44:28 +02:00
derrod 594e60e850 [cli] Allow some eos-overlay commands to work without a prefix 2022-06-24 12:27:24 +02:00
tooru 496bda3345
[cli] Check for empty list when activating Origin games
Prevents `IndexError` from occurring when Origin games list is empty.
2022-06-24 12:08:54 +02:00
derrod fc73c1d4bf [core] Only use override exe on Windows; ensure file exists 2022-06-01 12:56:57 +02:00
derrod f902963b1a [core] Reword exe override suggestion 2022-06-01 10:38:36 +02:00
derrod 791fb5da11 Bump version 2022-06-01 10:12:31 +02:00
derrod 46bda313d6 [core] Suggest alternative executables when 2K launcher is found 2022-06-01 10:11:16 +02:00
derrod 06b18fe94a [utils] Disable strict mode for registry parsing
Fixes #407
2022-06-01 09:49:12 +02:00
derrod 40748a91ba [cli] Correct command in move failed error message
Fixes #416
2022-06-01 09:47:50 +02:00
derrod e52223c3ce [core] Change disk space warning to GiB 2022-06-01 09:44:41 +02:00
derrod a3bc07e15a [core/utils] Add automatic exe overrides to workarounds 2022-06-01 09:42:01 +02:00
derrod b7f4a9f45a [cli] Show game "tip" before and after install
Just to be sure that users see it.
2022-06-01 09:40:51 +02:00
derrod 60a504edde [core] Add warning if 2K Launcher is the launch executable 2022-06-01 09:40:25 +02:00
derrod 2b71b50d5c [cli/lfs] Fix cleanup deleting in-use manifests using new naming convention 2022-05-31 13:26:17 +02:00
Mathis Dröge 823d672c2c
[lfs] Check if AppData/ProgramData paths exist (#421) 2022-05-29 18:17:16 +02:00
Mathis Dröge a12238e4ef
[api] Update GraphQL hostname (#434) 2022-05-29 18:16:49 +02:00
derrod 2ef5401dbb [core] Only install into Applications if all files are inside app bundle 2022-05-23 07:45:56 +02:00
derrod 1e97a4d791 [cli/core] Only check CX_BOTTLE when using CrossOver wine
Addresses issues pointed out in #414
2022-05-23 07:45:56 +02:00
aznd ec91f69adc
[utils] Fix pywebview deprecation issue (#423) 2022-04-28 15:59:19 +02:00
derrod 3d1042e27e [cli] Ensure delta is >= 1 before verification speed calculation
Fixes #412
2022-03-05 14:10:18 +01:00
derrod d7360eef3e [utils] Remove unnecessary JS callback
This seems to be no longer used or required for the webview login to work.
2022-02-02 18:36:08 +01:00
derrod 7ac9ec7b5f [cli] sync-saves: Skip unconfigured games when using --yes 2022-01-26 14:12:48 +01:00
derrod b7ad4daeb2 Bump version 2022-01-23 13:11:05 +01:00
derrod 869c749908 [core] Return empty games list if assets empty 2022-01-21 17:47:54 +01:00
derrod 3793601de3 [cli] Add --migrate flag to egl-sync command
This will import the games into Legendary and then remove them from EGL.

Also updates info messages for --unlink.
2022-01-20 14:19:20 +01:00
derrod 858d2f98e6 [cli] Move user parameters before EGL parameters
Some games appear to fail parsing the command line correctly otherwise.
2022-01-18 16:11:07 +01:00
derrod 158b28eaff [core] Add "epicsandboxid" launch parameter
EGL seems to have added this at some point.
Omitting it doesn't seem to break anything.
But better safe than sorry.
2022-01-18 16:10:12 +01:00
derrod 778ecacbd3 [core] Apply disable_https to manifest downloads as well
Since we know the hash ahead of time this is relatively low-risk.
Delta manifests don't have an associated API call that would tell us
the hash, so still use HTTPS for those unless the base url is overridden.
2022-01-18 10:25:04 +01:00
derrod 180692195f [core] Catch FileNotFoundError when removing synced EGL manifest 2022-01-18 10:16:06 +01:00
derrod 3bc819e567 [core] Check install directory for write access
Fixes #395
2022-01-10 17:14:30 +01:00
derrod 742d3a3b05 [core] Verify CDN manifest hash 2022-01-10 17:00:45 +01:00
derrod cf95da395c [cli] Error out if no overlay installs found 2022-01-10 16:28:42 +01:00
derrod 66a30d6b2a [cli] Log Uplay activation errors in API response 2022-01-10 14:42:01 +01:00
derrod e6da49d0bf Bump version 2022-01-10 00:50:50 +01:00
derrod f21ecf1eda [cli] Fix old command name aliases not actually working 2022-01-10 00:41:11 +01:00
derrod a25de242d9 [cli/core/models] Add config option for pre-launch command 2022-01-09 14:21:11 +01:00
derrod 4ab0c99a0f Bump version 2022-01-08 22:30:24 +01:00
derrod 49cc8db22f [core] Add None check to get_game_tip() 2022-01-08 22:10:01 +01:00
derrod be4c1b1cda [cli] Re-add missing f-String prefix 2022-01-08 16:53:15 +01:00
derrod 1c6e83e9f8 [cli] Make game compatibility tip more obvious 2022-01-08 16:50:17 +01:00
derrod a48bad9999 [cli] Show app-compatible bottles as recommended rather than default 2022-01-07 17:35:04 +01:00
derrod 710f5d07d7 [cli] Also add some additional whitespace to install command output 2022-01-07 17:24:30 +01:00
derrod 8d28945e8b [cli/core] Optionally show link to wiki article on game install
This is supposed to make setup easier for games with know issues.
Perhaps in the future this can also be shown on launch.
2022-01-07 16:38:52 +01:00
derrod ed1cbfc87e [cli] Select default app based on app compatibility 2022-01-07 16:30:04 +01:00
derrod f7f13ed749 [cli] Add "move" command to move existing game installations 2022-01-07 16:22:24 +01:00
derrod ce68ae87bf [cli] Drop unnecessary "game(s)" from command names
Aliases make sure that users can still use legendary as usual,
but they may be removed in the future
2022-01-07 16:22:24 +01:00
derrod 58bd76c39e [cli/utils] Reintroduce custom parser for hidden aliases
I don't want to break people's muscle memory, but I also don't want
to have the help output be messier than it needs to be.
2022-01-07 14:32:36 +01:00
derrod cf8bccc569 [core] Final adjustments to default path, separate config option for Mac 2022-01-07 13:51:25 +01:00
derrod 8f2d42892b [cli/utils] Remove custom subparser (no longer required)
Apparently this was *never* required? I just didn't know?

Genuinely I have no idea what made me add this.
2022-01-05 19:56:01 +01:00
derrod df1c3e6a3c [core] Handle legacy AppData paths on Linux and Mac 2022-01-05 19:56:01 +01:00
derrod 48baba6adc [core] Try to resolve legacy AppData paths when using CrossOver 2022-01-05 19:56:01 +01:00
derrod 557724339d [utils] Fix case-insensitive path searcher 2022-01-05 19:56:00 +01:00
derrod b30de01cc7 [core] Also look for CrossOver bottle in get_save_path 2022-01-05 19:56:00 +01:00
derrod 586aeaf6de [cli] Do not set a default bottle choice if known names not found 2022-01-05 19:56:00 +01:00
derrod 9bcfb15cf8 [cli] Use two spaces instead of tabs in CrossOver choice lists 2022-01-05 19:56:00 +01:00
derrod ba1e05af53 [cli] Add option to disable CX version check 2022-01-05 14:37:51 +01:00
derrod 976b7cebf0 [cli] Add some whitespace to make console less cramped 2022-01-05 14:37:51 +01:00
derrod cc5c7a90b8 [cli] Check CX version against list rather than string 2022-01-05 14:28:31 +01:00
derrod 4bccd460ad [core] Create parent directories of symlinks if required 2022-01-05 14:24:46 +01:00
derrod ac5af04980 [utils] Fix CrossOver running check detecting the CD helper 2022-01-05 14:21:24 +01:00
derrod de3f3f93af [cli] Do not try to delete (~)/Applications on macOS
It would fail, but is not considered polite either.
2022-01-04 15:39:24 +01:00
derrod 840210040f [core] Use ~/Applications on Mac, only omit game folder for .app root dirs 2022-01-04 15:31:48 +01:00
derrod 005089ee9b [core] Adjust default install paths
- Native Mac apps should go into /Applications
- On Windows we keep %USERPROFILE%\legendary for now
- On Linux we use ~/Games/legendary now to keep the home folder more tidy
2022-01-04 15:11:43 +01:00
derrod bec119bc03 [cli] Accurately track verified file size 2022-01-04 12:11:46 +01:00
derrod ecb04324d5 [utils] Show speed while verifying large files 2022-01-04 12:11:24 +01:00
derrod cea5f42425 [cli] Run preqreq installers in shell mode and handle exceptions 2022-01-03 16:03:00 +01:00
derrod 9a3652086b [cli] Show average disk read speed during verification 2022-01-03 15:32:32 +01:00
derrod d3ea2c6cfd [utils] Show more verbose verification progress with large files 2022-01-03 15:02:19 +01:00
derrod cc44149e68 [cli] Fall back to "Windows" platform by default 2022-01-02 13:17:18 +01:00
derrod e44998b786 [cli] Hide and add warning to automatic bottle setup for now
Needs some more testing to see if this is actually viable.
2022-01-02 13:10:42 +01:00
derrod 8e4bb8d3dd [core] Fix required disk space calculation, once and for all 2022-01-02 13:08:14 +01:00
derrod 202f07973a [downloader/models] Calculate maximum disk space delta during installation 2022-01-02 13:06:59 +01:00
derrod 05aac59836 [cli/core] Allow bottle downloads to specify a base url 2021-12-31 21:24:47 +01:00
derrod edadf1c780 [cli] Fix argument dest for --bottle 2021-12-31 18:59:34 +01:00
derrod 0a63b8b007 [cli] Also fall back to default if no app-specific config exists 2021-12-31 18:58:36 +01:00
derrod 6a408e8404 [cli] Log prefix used / error if it doesn't exist 2021-12-31 18:56:52 +01:00
derrod 8a9ca14391 [core] Remove unnecessary os check 2021-12-31 18:56:30 +01:00
derrod 4a4e1397d4 [utils] Add missing null check 2021-12-31 18:50:05 +01:00
derrod 0298a53315 [cli/core/utils] Add (janky) EOS overlay install support on non-Windows 2021-12-31 18:48:07 +01:00
derrod ecb230511f [core/utils] Clean up crossover bottle code a bit 2021-12-31 17:46:15 +01:00
derrod d15f05fc60 [utils] Add janky WINE registry manipulation 2021-12-31 17:31:04 +01:00
derrod 08267025b4 [cli] Stop adding registry entries that already exist 2021-12-31 17:06:44 +01:00
derrod 9469d3cb6f [cli] Add crossover parameters to skip interactive selection 2021-12-31 14:48:08 +01:00
derrod 2e6335bf09 [cli/utils] Simplify imports 2021-12-31 14:44:32 +01:00
derrod 688910bf91 [cli] Make --yes work with crossover command 2021-12-31 14:38:23 +01:00
derrod e771ccdf19 [cli] Fix conflict between timeout/third-party flags 2021-12-31 14:35:05 +01:00
derrod a4c6dee7ef [cli] Allow downloading a bottle more than once 2021-12-30 19:16:29 +01:00
derrod d70f0daa22 [utils] Fix get_integer_choice behaviour
In my defense, the original function was 100% generated by
GitHub Copilot.
2021-12-30 19:05:23 +01:00
derrod cd74af8832 [core] Fix remove_bottle parameters 2021-12-30 19:04:44 +01:00
derrod 0f481e1f31 [core/utils] Remove missing folder creation
Instead, the manifest will just use zero-byte ".keep" files in empty
folders, so they are still created when a bottle is downloaded.
2021-12-30 18:09:11 +01:00
derrod 3fed7d2614 [api] Treat timeout <= 0 as no timeout 2021-12-30 17:42:18 +01:00
derrod 013792f7b9 [cli/core/utils] Add experimental automatic bottle setup
Not sure if this will make it into the release yet, but
it doesn't seem like a bad idea. And it should work even
if the user has never run CrossOver.

It's quite a lot of work to package a bottle this way
(read: not including personal data, and without broken symlinks)
2021-12-30 17:21:56 +01:00