TArray FRiderPathLocator::GetInstallInfosFromToolbox()

in Source/RiderSourceCodeAccess/Private/RiderPathLocator/Common/RiderPathLocator.cpp [41:63]


TArray<FInstallInfo> FRiderPathLocator::GetInstallInfosFromToolbox(const FString& ToolboxPath, const FString& Pattern)
{
	if(!DirectoryExistsAndNonEmpty(ToolboxPath)) return {};
	
	const FString InstallLocationPath = ExtractPathFromSettingsJson(ToolboxPath);
	TArray<FInstallInfo> Result{};
	if(!InstallLocationPath.IsEmpty())
	{
		// Toolbox V1 custom install location search path
		Result = GetInstallInfos(FPaths::Combine(InstallLocationPath, TEXT("apps")), Pattern, FInstallInfo::EInstallType::Toolbox);
		if(Result.Num() != 0) return Result;

		// Toolbox V2 custom install location search path
		return GetInstallInfos(InstallLocationPath, Pattern, FInstallInfo::EInstallType::Toolbox);		
	}

	// Toolbox V1 default install location search path
	Result = GetInstallInfos(FPaths::Combine(ToolboxPath, TEXT("apps")), Pattern, FInstallInfo::EInstallType::Toolbox);
	if(Result.Num() != 0) return Result;

	const FString DefaultInstallLocation = GetDefaultIDEInstallLocationForToolboxV2();
	return GetInstallInfos(DefaultInstallLocation, Pattern, FInstallInfo::EInstallType::Toolbox);
}