Commit Graph

255 Commits

Author SHA1 Message Date
0fcf10e10a Also support hard links on macOS 2022-12-29 22:35:13 +08:00
74bc5d4666 Disable naming rule inspection on struct stat definition 2022-12-28 22:38:42 +01:00
49b0ec9ddb Fix broken condition 2022-12-28 22:24:18 +01:00
8d79fa93ac Implement GetFileLinkCount() for Linux 2022-12-28 22:14:56 +01:00
04d4b4a6ce Rename and xmldoc hard link creation method 2022-12-28 22:04:05 +01:00
cadd487c75 Use switch statement in AttemptHardLink() 2022-12-28 21:20:49 +01:00
53bca947d1 Move duplicated code into its own method 2022-12-28 14:34:27 +01:00
5c5e84f931 Fix formatiing 2022-12-28 14:06:50 +01:00
16165b1f67 Remove blank line 2022-12-28 13:58:52 +01:00
b2aa2e1602 Add hardlink support for Linux 2022-12-28 13:32:49 +01:00
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
192536643c Fix some more inspections 2022-12-16 20:21:19 +09:00
a3c3112f89 Add SetLastError hint to CreateHardLink pinvoke method
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-12-14 11:34:06 +09:00
6bb612ce69 Move hard link availability check to helper class 2022-12-13 20:20:42 +09:00
bbf931c746 Move hard link helper functions to their own class 2022-12-13 19:55:18 +09:00
a8dee17513 Fix missing DummyRenderer in skin resources tests 2022-08-08 13:06:01 +09:00
c4b9b2a14b Merge branch 'master' into irenderer-glwrapper 2022-08-05 20:35:06 +09:00
f743dc623f Change migration logic to ignore realm pipe files regardless of database filename 2022-08-03 17:37:30 +09:00
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
cc8a71b65d Re-query file existence before failing a recursive copy operation during migration 2022-08-01 17:01:19 +09:00
59210ecc9d Revert "Fix migration failing on single file copy failure"
This reverts commit fc8835d43a.
2022-08-01 16:57:50 +09:00
fc8835d43a Fix migration failing on single file copy failure
No longer throw if copying of single files fails during data migration.

Aiming to fix https://github.com/ppy/osu/runs/7601653833?check_suite_focus=true, which could also affect end users. I've left a limit before an exception is still thrown, to handle cases like the user running out of disk space (where we probably *do* want to bail, so they can continue to use their still-intact original storage location).

If this isn't seen as a good direction, an alternative will be to make the migration code aware of the structure of the temporary files created by `Storage` (but doesn't guarantee this will cover all cases of such temporary files – there could for isntance be metadata files created by the host operating system).

Another option would be to mark those temporary files as hidden and skip any hidden files during iteration.
2022-08-01 15:02:39 +09:00
6f37487528 Replace calls to defective Humanizer methods with correct version 2022-07-18 22:34:58 +02:00
27ef7fc78e Add log output for custom storage usage
Sometimes I am not sure where my osu! is reading files from. This should
help somewhat.

```csharp
/Users/dean/Projects/osu/osu.Desktop/bin/Debug/net6.0/osu!
[runtime] 2022-07-13 07:22:03 [verbose]: Starting legacy IPC provider...
[runtime] 2022-07-13 07:22:03 [verbose]: Attempting to use custom storage location /Users/dean/Games/osu-lazer-2
[runtime] 2022-07-13 07:22:03 [verbose]: Storage successfully changed to /Users/dean/Games/osu-lazer-2.
[runtime] 2022-07-13 07:22:05 [verbose]: GL Initialized
```
2022-07-13 16:22:51 +09:00
66f314915d Fix crash on mobile releases when attempting to read any file 2022-07-09 06:01:22 +09:00
c2f1069073 Avoid usage of finally in potentially hot path 2022-07-06 19:55:51 +09:00
01bc6e5cb7 Revert old behaviour of ReadToEnd 2022-07-06 19:55:51 +09:00
12d396a513 Use -1 to specify default buffer size 2022-07-06 15:43:35 +09:00
a52ea3cabe Enable NRT and simplify LineBufferedReader 2022-07-06 14:57:56 +09:00
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
ee8045d507 Add failing test case 2022-06-15 07:33:21 +03:00
82a1ba1d46 Use pooled memory for memory copies performed by ZipArchiveReader 2022-05-30 20:22:26 +09:00
c587d10cc3 Revert storage workaround 2022-05-21 15:55:07 +09:00
72386d9377 Fix incorrect storage being used in CreateFileSafely implementation 2022-05-21 15:17:10 +09:00
5bf17dde9f Fix missing MutatePath calls 2022-05-21 14:43:35 +09:00
f78eb0066c Update Storage in line with new methods 2022-05-16 17:51:12 +09:00
80e312dbbc Remove unused binary serialization related code. 2022-04-12 20:29:13 +08:00
bf677ad0ac Remove usages of BinaryFormatter. 2022-04-12 20:28:14 +08:00
975883da5c Move all usages of client.realm filename to a single const 2022-03-30 13:34:48 +09:00
1fb3d11591 Add ability to "migrate" data to another folder which has an existing install
Until now, migrating would always attempt to move files.

There's a chance that a user is reinstalling osu! but has their data at
a custom location. We want to allow the chance for them to continue
using the external data. This seems like the easiest way to make it
work.

Would be nice if we had a `Game.Restart()` method, but maybe this is
enough for now?

Note that further down the road we will probably prompt the user to
potentially select a custom install path (including one with existing
data) before osu! gets to writing anything.
2022-03-29 18:04:31 +09:00
2938f44e6c Update PresentExternally usages in line with framework changes 2022-03-24 23:41:07 +09:00
5b30921cbf Merge branch 'master' into net6 2022-02-14 22:06:35 +09:00
908c31c687 Update stream read operations to use new helper methods 2022-02-11 16:02:25 +09:00
44f2d8a448 Allow game folder migration to fail gracefully when cleanup cannot completely succeed 2022-02-10 19:30:26 +09:00
b2ebcabdd5 Fix potential crash during stable install migration due to multiple configuration files
Apparently this can be a thing on windows.

Closes https://github.com/ppy/osu/discussions/16689.
2022-01-29 13:30:07 +09:00
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
116f35c52a Remove EF FileStore 2022-01-12 16:39:36 +09:00
670a30b64b Remove usage of .Result in ArchiveReader 2021-12-31 01:52:01 +09:00
5082b0e63f Fix some identifiers using shortened naming 2021-12-27 20:26:28 -08:00
1040590844 Add cancellation support to game-side IResourceStores 2021-12-23 10:33:17 +01:00