TArray FRiderPathLocator::GetInstallInfosFromResourceFile()

in Source/RiderSourceCodeAccess/Private/RiderPathLocator/Common/RiderPathLocator.cpp [167:189]


TArray<FInstallInfo> FRiderPathLocator::GetInstallInfosFromResourceFile()
{
	const TSharedPtr<IPlugin> Plugin = IPluginManager::Get().FindPlugin(TEXT("RiderSourceCodeAccess"));
	if(!Plugin.IsValid()) return {};
	
	const FString RiderLocationsFile = FPaths::Combine(Plugin->GetBaseDir(), TEXT("Resources"), TEXT("RiderLocations.txt"));
	TArray<FString> RiderLocations;
	if(FFileHelper::LoadFileToStringArray(RiderLocations, *RiderLocationsFile) == false) return {};

	TArray<FInstallInfo> RiderInstallInfos;
	for(const auto& RiderLocation : RiderLocations)
	{
		const FString Location = RiderLocation.TrimStartAndEnd();
		if(Location.StartsWith("#")) continue;
		
		TOptional<FInstallInfo> InstallInfo = GetInstallInfoFromRiderPath(Location, FInstallInfo::EInstallType::Custom);
		if(InstallInfo.IsSet())
		{
			RiderInstallInfos.Add(InstallInfo.GetValue());
		}
	}
	return RiderInstallInfos;
}