Commit graph

260 commits

Author SHA1 Message Date
derrod e26b9e60ff [core/lfs] Use filelock for user data
Closes #566

Co-authored-by: Mathis Dröge <mathis.droege@ewe.net>
2023-06-17 22:58:16 +02:00
derrod 4bed49e7e1 [core] Ignore KeyError when updating game info
The retry logic may attempt to update metadata for an asset for
a different platform. This can cause an exception if it's not
also in the "still_needs_update" set.
2023-05-28 00:08:39 +02:00
derrod 6b8273f983 [core] Strip name of game installation folder
Thanks Kerbal Space Program for having an invalid
directory name as your set folder!
2023-01-05 17:28:32 +01:00
derrod 00f025dcc9 [core] Add timeout and dumb exception handler to manifest download 2022-12-15 13:23:17 +01:00
derrod c3eb6b4fe6 [core/utils] Respect include/exclude filter when deleting save data
Not doing this would result in some titles that save their save data in
the install directory having their game data deleted...

Fixes #497
2022-11-06 17:14:02 +01:00
derrod 2ffd183554 [core] Add note about difference to EGL save path resolver 2022-10-31 12:31:49 +01:00
derrod 36e6e5f08a [core/models] Make manifest merge part of Manifest class 2022-10-25 15:46:34 +02:00
derrod 0e23b8e4f0 Cherry-pick some Sourcery refactoring suggestions 2022-10-25 15:38:55 +02:00
derrod 85f6bd3220 Move some files from utils to more sensible locations 2022-10-25 15:14:26 +02:00
derrod ecb405172b [core] Fix incompatible DLCs being returned 2022-10-23 14:46:31 +02:00
Mathis Dröge 0eec8472a4 [core] Try all manifest URLs until one works
Co-authored-by: derrod <xlnedder@gmail.com>
2022-09-11 16:33:49 +02:00
Mathis Dröge abd3a9d496 [core] Save path resolution: Fallback to reading wine prefix from env vars
This is mainly something for Heroic, since we don't touch config.ini
2022-09-01 02:35:13 +02:00
derrod b136748168 [core/cli/api] Use authorization code for login
This still seems to work.

Fixes #468
2022-09-01 02:23:38 +02:00
derrod f26c8ab0a1 [core] Change locale env variable order
Fixes #457
2022-07-21 18:25:06 +02:00
derrod a73d0694f6 [core] Handle ConnectionError exception on login
Fixes #447
2022-07-06 16:35:30 +02:00
derrod 410c840aa4 [core] Remove auth() (never going to be implemented) 2022-06-24 13:33:57 +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 46bda313d6 [core] Suggest alternative executables when 2K launcher is found 2022-06-01 10:11:16 +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 60a504edde [core] Add warning if 2K Launcher is the launch executable 2022-06-01 09:40:25 +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
derrod 869c749908 [core] Return empty games list if assets empty 2022-01-21 17:47:54 +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 a25de242d9 [cli/core/models] Add config option for pre-launch command 2022-01-09 14:21:11 +01:00
derrod 49cc8db22f [core] Add None check to get_game_tip() 2022-01-08 22:10:01 +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 cf8bccc569 [core] Final adjustments to default path, separate config option for Mac 2022-01-07 13:51:25 +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 b30de01cc7 [core] Also look for CrossOver bottle in get_save_path 2022-01-05 19:56:00 +01:00
derrod 4bccd460ad [core] Create parent directories of symlinks if required 2022-01-05 14:24:46 +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 8e4bb8d3dd [core] Fix required disk space calculation, once and for all 2022-01-02 13:08:14 +01:00
derrod 05aac59836 [cli/core] Allow bottle downloads to specify a base url 2021-12-31 21:24:47 +01:00
derrod 8a9ca14391 [core] Remove unnecessary os check 2021-12-31 18:56:30 +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 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 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
derrod 03ef95923d [api/cli/core] Make API timeout configurable 2021-12-30 12:03:43 +01:00