Skip to content

Commit f770544

Browse files
authored
Merge pull request #10 from weter11/codex/fix-library-scanning-logic-and-acf-parsing
Harden SteamFlow install/library handling and remove unused legacy projects
2 parents cc7434a + 953d6c6 commit f770544

7 files changed

Lines changed: 187 additions & 121 deletions

File tree

OpenSteamClient.DI

Submodule OpenSteamClient.DI deleted from 3579bcb

OpenSteamClient.Logging

Submodule OpenSteamClient.Logging deleted from dbe5251

OpenSteamClient.sln

Lines changed: 91 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,91 @@
1-
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio Version 17
3-
VisualStudioVersion = 17.0.31903.59
4-
MinimumVisualStudioVersion = 10.0.40219.1
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamClient", "OpenSteamClient\OpenSteamClient.csproj", "{F99A1010-054A-41B8-88E3-830E0BBB66EF}"
6-
EndProject
7-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Client", "OpenSteamworks.Client\OpenSteamworks.Client.csproj", "{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}"
8-
EndProject
9-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer", "Installer\Installer.csproj", "{0DF0A8CB-BEA8-4809-9532-FA084BE99407}"
10-
EndProject
11-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvaloniaCommon", "AvaloniaCommon\AvaloniaCommon.csproj", "{DCB34015-EED4-4ACA-9620-734CFB74A943}"
12-
EndProject
13-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameOverlayUI", "GameOverlayUI\GameOverlayUI.csproj", "{BC50FC00-E846-4A2A-B759-98C39B238F7A}"
14-
EndProject
15-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameOverlayDebugTarget", "GameOverlayDebugTarget\GameOverlayDebugTarget.csproj", "{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}"
16-
EndProject
17-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamClient.DI", "OpenSteamClient.DI\OpenSteamClient.DI.csproj", "{2A739B1E-2DAF-48CC-8D09-EEC6D1987767}"
18-
EndProject
19-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamClient.Logging", "OpenSteamClient.Logging\OpenSteamClient.Logging.csproj", "{C0D40FB8-F674-4C98-990C-960DA323CB38}"
20-
EndProject
21-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChromeTestClient", "ChromeTestClient\ChromeTestClient.csproj", "{B1019060-FAA1-43C2-BA41-2044114DE39C}"
22-
EndProject
23-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks", "..\OpenSteamworks\OpenSteamworks\OpenSteamworks.csproj", "{12E82CE5-AA43-4E0E-A90A-3A5025E88147}"
24-
EndProject
25-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Messaging.SharedConnection", "..\OpenSteamworks\OpenSteamworks.Messaging.SharedConnection\OpenSteamworks.Messaging.SharedConnection.csproj", "{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}"
26-
EndProject
27-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Messaging", "..\OpenSteamworks\OpenSteamworks.Messaging\OpenSteamworks.Messaging.csproj", "{7F9F15AB-C758-4811-9206-AFA35838601E}"
28-
EndProject
29-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Data", "..\OpenSteamworks\OpenSteamworks.Data\OpenSteamworks.Data.csproj", "{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}"
30-
EndProject
31-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppSourceGen.Generator", "..\OpenSteamworks\CppSourceGen.Generator\CppSourceGen.Generator.csproj", "{C26A136F-2C8F-4080-A860-B1DA04837D30}"
32-
EndProject
33-
Global
34-
GlobalSection(SolutionConfigurationPlatforms) = preSolution
35-
Debug|Any CPU = Debug|Any CPU
36-
Release|Any CPU = Release|Any CPU
37-
EndGlobalSection
38-
GlobalSection(SolutionProperties) = preSolution
39-
HideSolutionNode = FALSE
40-
EndGlobalSection
41-
GlobalSection(ProjectConfigurationPlatforms) = postSolution
42-
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
43-
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
44-
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
45-
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Release|Any CPU.Build.0 = Release|Any CPU
46-
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47-
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Debug|Any CPU.Build.0 = Debug|Any CPU
48-
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Release|Any CPU.ActiveCfg = Release|Any CPU
49-
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Release|Any CPU.Build.0 = Release|Any CPU
50-
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
51-
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Debug|Any CPU.Build.0 = Debug|Any CPU
52-
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Release|Any CPU.ActiveCfg = Release|Any CPU
53-
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Release|Any CPU.Build.0 = Release|Any CPU
54-
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
55-
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Debug|Any CPU.Build.0 = Debug|Any CPU
56-
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Release|Any CPU.ActiveCfg = Release|Any CPU
57-
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Release|Any CPU.Build.0 = Release|Any CPU
58-
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59-
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
60-
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
61-
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Release|Any CPU.Build.0 = Release|Any CPU
62-
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
63-
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
64-
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
65-
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Release|Any CPU.Build.0 = Release|Any CPU
66-
{2A739B1E-2DAF-48CC-8D09-EEC6D1987767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
67-
{2A739B1E-2DAF-48CC-8D09-EEC6D1987767}.Debug|Any CPU.Build.0 = Debug|Any CPU
68-
{2A739B1E-2DAF-48CC-8D09-EEC6D1987767}.Release|Any CPU.ActiveCfg = Release|Any CPU
69-
{2A739B1E-2DAF-48CC-8D09-EEC6D1987767}.Release|Any CPU.Build.0 = Release|Any CPU
70-
{C0D40FB8-F674-4C98-990C-960DA323CB38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
71-
{C0D40FB8-F674-4C98-990C-960DA323CB38}.Debug|Any CPU.Build.0 = Debug|Any CPU
72-
{C0D40FB8-F674-4C98-990C-960DA323CB38}.Release|Any CPU.ActiveCfg = Release|Any CPU
73-
{C0D40FB8-F674-4C98-990C-960DA323CB38}.Release|Any CPU.Build.0 = Release|Any CPU
74-
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
75-
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Debug|Any CPU.Build.0 = Debug|Any CPU
76-
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Release|Any CPU.ActiveCfg = Release|Any CPU
77-
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Release|Any CPU.Build.0 = Release|Any CPU
78-
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
79-
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Debug|Any CPU.Build.0 = Debug|Any CPU
80-
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Release|Any CPU.ActiveCfg = Release|Any CPU
81-
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Release|Any CPU.Build.0 = Release|Any CPU
82-
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
83-
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
84-
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
85-
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Release|Any CPU.Build.0 = Release|Any CPU
86-
{7F9F15AB-C758-4811-9206-AFA35838601E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
87-
{7F9F15AB-C758-4811-9206-AFA35838601E}.Debug|Any CPU.Build.0 = Debug|Any CPU
88-
{7F9F15AB-C758-4811-9206-AFA35838601E}.Release|Any CPU.ActiveCfg = Release|Any CPU
89-
{7F9F15AB-C758-4811-9206-AFA35838601E}.Release|Any CPU.Build.0 = Release|Any CPU
90-
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
91-
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Debug|Any CPU.Build.0 = Debug|Any CPU
92-
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Release|Any CPU.ActiveCfg = Release|Any CPU
93-
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Release|Any CPU.Build.0 = Release|Any CPU
94-
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
95-
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
96-
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Release|Any CPU.ActiveCfg = Release|Any CPU
97-
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Release|Any CPU.Build.0 = Release|Any CPU
98-
EndGlobalSection
99-
GlobalSection(NestedProjects) = preSolution
100-
{97A11C5F-5A2B-43EB-BAEB-68F08E1C5080} = {28FC9377-6212-4732-82EC-D29D3239095F}
101-
{6F856C94-1184-4720-8D7C-2157051B9A2D} = {28FC9377-6212-4732-82EC-D29D3239095F}
102-
EndGlobalSection
103-
EndGlobal
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.0.31903.59
4+
MinimumVisualStudioVersion = 10.0.40219.1
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamClient", "OpenSteamClient\OpenSteamClient.csproj", "{F99A1010-054A-41B8-88E3-830E0BBB66EF}"
6+
EndProject
7+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Client", "OpenSteamworks.Client\OpenSteamworks.Client.csproj", "{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}"
8+
EndProject
9+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer", "Installer\Installer.csproj", "{0DF0A8CB-BEA8-4809-9532-FA084BE99407}"
10+
EndProject
11+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvaloniaCommon", "AvaloniaCommon\AvaloniaCommon.csproj", "{DCB34015-EED4-4ACA-9620-734CFB74A943}"
12+
EndProject
13+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameOverlayUI", "GameOverlayUI\GameOverlayUI.csproj", "{BC50FC00-E846-4A2A-B759-98C39B238F7A}"
14+
EndProject
15+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameOverlayDebugTarget", "GameOverlayDebugTarget\GameOverlayDebugTarget.csproj", "{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}"
16+
EndProject
17+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChromeTestClient", "ChromeTestClient\ChromeTestClient.csproj", "{B1019060-FAA1-43C2-BA41-2044114DE39C}"
18+
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks", "..\OpenSteamworks\OpenSteamworks\OpenSteamworks.csproj", "{12E82CE5-AA43-4E0E-A90A-3A5025E88147}"
20+
EndProject
21+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Messaging.SharedConnection", "..\OpenSteamworks\OpenSteamworks.Messaging.SharedConnection\OpenSteamworks.Messaging.SharedConnection.csproj", "{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}"
22+
EndProject
23+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Messaging", "..\OpenSteamworks\OpenSteamworks.Messaging\OpenSteamworks.Messaging.csproj", "{7F9F15AB-C758-4811-9206-AFA35838601E}"
24+
EndProject
25+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSteamworks.Data", "..\OpenSteamworks\OpenSteamworks.Data\OpenSteamworks.Data.csproj", "{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}"
26+
EndProject
27+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CppSourceGen.Generator", "..\OpenSteamworks\CppSourceGen.Generator\CppSourceGen.Generator.csproj", "{C26A136F-2C8F-4080-A860-B1DA04837D30}"
28+
EndProject
29+
Global
30+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
31+
Debug|Any CPU = Debug|Any CPU
32+
Release|Any CPU = Release|Any CPU
33+
EndGlobalSection
34+
GlobalSection(SolutionProperties) = preSolution
35+
HideSolutionNode = FALSE
36+
EndGlobalSection
37+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
38+
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39+
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
40+
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
41+
{F99A1010-054A-41B8-88E3-830E0BBB66EF}.Release|Any CPU.Build.0 = Release|Any CPU
42+
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
43+
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Debug|Any CPU.Build.0 = Debug|Any CPU
44+
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Release|Any CPU.ActiveCfg = Release|Any CPU
45+
{FFA4DBFB-4F66-4EBF-9A84-4F19A7ADAF95}.Release|Any CPU.Build.0 = Release|Any CPU
46+
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47+
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Debug|Any CPU.Build.0 = Debug|Any CPU
48+
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Release|Any CPU.ActiveCfg = Release|Any CPU
49+
{0DF0A8CB-BEA8-4809-9532-FA084BE99407}.Release|Any CPU.Build.0 = Release|Any CPU
50+
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
51+
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Debug|Any CPU.Build.0 = Debug|Any CPU
52+
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Release|Any CPU.ActiveCfg = Release|Any CPU
53+
{DCB34015-EED4-4ACA-9620-734CFB74A943}.Release|Any CPU.Build.0 = Release|Any CPU
54+
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
55+
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
56+
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
57+
{BC50FC00-E846-4A2A-B759-98C39B238F7A}.Release|Any CPU.Build.0 = Release|Any CPU
58+
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59+
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
60+
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
61+
{B12E4BB3-1FA6-46F7-9C81-200C17F784CC}.Release|Any CPU.Build.0 = Release|Any CPU
62+
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
63+
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Debug|Any CPU.Build.0 = Debug|Any CPU
64+
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Release|Any CPU.ActiveCfg = Release|Any CPU
65+
{B1019060-FAA1-43C2-BA41-2044114DE39C}.Release|Any CPU.Build.0 = Release|Any CPU
66+
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
67+
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Debug|Any CPU.Build.0 = Debug|Any CPU
68+
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Release|Any CPU.ActiveCfg = Release|Any CPU
69+
{12E82CE5-AA43-4E0E-A90A-3A5025E88147}.Release|Any CPU.Build.0 = Release|Any CPU
70+
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
71+
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
72+
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
73+
{369B9BC0-CD93-49B7-AEE9-A1396A051B8A}.Release|Any CPU.Build.0 = Release|Any CPU
74+
{7F9F15AB-C758-4811-9206-AFA35838601E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
75+
{7F9F15AB-C758-4811-9206-AFA35838601E}.Debug|Any CPU.Build.0 = Debug|Any CPU
76+
{7F9F15AB-C758-4811-9206-AFA35838601E}.Release|Any CPU.ActiveCfg = Release|Any CPU
77+
{7F9F15AB-C758-4811-9206-AFA35838601E}.Release|Any CPU.Build.0 = Release|Any CPU
78+
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
79+
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Debug|Any CPU.Build.0 = Debug|Any CPU
80+
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Release|Any CPU.ActiveCfg = Release|Any CPU
81+
{96C74E02-6F7B-49AE-AAE0-8DE0A9BCE580}.Release|Any CPU.Build.0 = Release|Any CPU
82+
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
83+
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
84+
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Release|Any CPU.ActiveCfg = Release|Any CPU
85+
{C26A136F-2C8F-4080-A860-B1DA04837D30}.Release|Any CPU.Build.0 = Release|Any CPU
86+
EndGlobalSection
87+
GlobalSection(NestedProjects) = preSolution
88+
{97A11C5F-5A2B-43EB-BAEB-68F08E1C5080} = {28FC9377-6212-4732-82EC-D29D3239095F}
89+
{6F856C94-1184-4720-8D7C-2157051B9A2D} = {28FC9377-6212-4732-82EC-D29D3239095F}
90+
EndGlobalSection
91+
EndGlobal

SteamFlow/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Guard data is persisted through `FileGuardDataStore::user_cache()` so repeated S
3030
- **Steam Cloud Sync**: Automatic sync-down before launch and sync-up after game exit (if enabled in settings).
3131

3232
## GUI
33+
- Context menu `Advanced > Depot Browser` opens a browser for app depots and manifest file trees.
34+
- Per-file depot download support from the Depot Browser window.
3335
- Integrated authentication panel (account/password + optional Steam Guard code).
3436
- Confirmation-type specific Steam Guard hints: email/device code vs mobile approval flow.
3537
- Validation messaging when a code is required but missing.
@@ -50,6 +52,8 @@ cargo run --manifest-path SteamFlow/Cargo.toml
5052
```
5153

5254
## Install/download pipeline
55+
- Install target now uses `<steam_library_path>/steamapps/common/<game>` instead of temp paths.
56+
- App manifests are now written to `<steam_library_path>/steamapps/appmanifest_<appid>.acf` after installs complete so local scan works after restart.
5357
- Implemented a four-phase pipeline in `src/download_pipeline.rs`:
5458
1. **Get Manifest ID**: PICS product info request + VDF parsing to find the correct depot and manifest GID for the target platform.
5559
2. **Get Security Info**: Request depot decryption keys + CDN server list and auth tokens.

SteamFlow/ROADMAP.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,6 @@
2323
7. [x] Add settings view for Proton runtime and Steam library path discovery.
2424
8. Extend CI to publish signed .deb artifacts from tags.
2525
9. [x] Implement Steam Cloud Sync (Enumerate/Download/Upload).
26+
27+
10. [x] Add Depot Browser developer tooling (depot list, manifest tree, single-file download).
28+
11. [x] Harden library scanning fallback and appmanifest parse diagnostics.

SteamFlow/src/library.rs

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,34 @@ pub async fn find_local_games() -> Result<Vec<LocalGame>> {
5656
}
5757

5858
pub async fn scan_installed_app_paths() -> Result<HashMap<u32, String>> {
59-
let root_path = if let Ok(cfg) = load_launcher_config().await {
60-
PathBuf::from(cfg.steam_library_path)
59+
let path_map = scan_installed_app_paths_pathbuf().await?;
60+
Ok(path_map
61+
.into_iter()
62+
.map(|(appid, path)| (appid, path.to_string_lossy().to_string()))
63+
.collect())
64+
}
65+
66+
pub async fn scan_installed_app_paths_pathbuf() -> Result<HashMap<u32, PathBuf>> {
67+
let config_path = if let Ok(cfg) = load_launcher_config().await {
68+
let p = PathBuf::from(cfg.steam_library_path);
69+
if p.join("steamapps").exists() || p.join("Steam").join("steamapps").exists() {
70+
Some(p)
71+
} else {
72+
None
73+
}
6174
} else {
62-
detect_steam_path().unwrap_or_else(default_steam_root)
75+
None
6376
};
6477

65-
scan_library(root_path).await
78+
let root = config_path
79+
.unwrap_or_else(|| detect_steam_path().unwrap_or_else(|| PathBuf::from("~/.steam/steam")));
80+
println!("Scanning Library Root: {:?}", root);
81+
scan_library(&root).await
6682
}
6783

68-
pub async fn scan_library(root_path: PathBuf) -> Result<HashMap<u32, String>> {
84+
pub async fn scan_library(root_path: &Path) -> Result<HashMap<u32, PathBuf>> {
6985
let mut installed = HashMap::new();
70-
let mut libraries = vec![root_path.clone()];
86+
let mut libraries = vec![root_path.to_path_buf()];
7187

7288
let library_folders_path = root_path.join("steamapps").join("libraryfolders.vdf");
7389
let extra_libraries = parse_library_folders(library_folders_path).await?;
@@ -93,7 +109,7 @@ pub async fn scan_library(root_path: PathBuf) -> Result<HashMap<u32, String>> {
93109
}
94110

95111
if let Some((app_id, install_dir)) = parse_app_manifest_install_path(&path).await? {
96-
installed.insert(app_id, install_dir.to_string_lossy().to_string());
112+
installed.insert(app_id, install_dir);
97113
}
98114
}
99115
}
@@ -177,7 +193,10 @@ async fn parse_app_manifest_install_path(path: &Path) -> Result<Option<(u32, Pat
177193

178194
let app_id = match parsed.app_state.appid.parse::<u32>() {
179195
Ok(v) => v,
180-
Err(_) => return Ok(None),
196+
Err(e) => {
197+
println!("WARNING: Failed to parse appid from {:?}: {}", path, e);
198+
return Ok(None);
199+
}
181200
};
182201

183202
let install_dir = path

0 commit comments

Comments
 (0)