TOptional FRiderPathLocator::GetInstallInfoFromRiderPath()

in Source/RiderSourceCodeAccess/Private/RiderPathLocator/Mac/RiderPathLocatorMac.cpp [15:37]


TOptional<FInstallInfo> FRiderPathLocator::GetInstallInfoFromRiderPath(const FString& PathToRiderApp, FInstallInfo::EInstallType InstallType)
{
	if(!DirectoryExistsAndNonEmpty(PathToRiderApp))
	{
		return {};
	}

	const FString RiderCppPluginPath = FPaths::Combine(PathToRiderApp, TEXT("Contents"), TEXT("plugins"), TEXT("rider-cpp"));
	if (!DirectoryExistsAndNonEmpty(RiderCppPluginPath))
	{
		return {};
	}

	FInstallInfo Info;
	Info.Path = FPaths::Combine(PathToRiderApp, TEXT("Contents"), TEXT("MacOS"), TEXT("rider"));
	Info.InstallType = InstallType;
	const FString ProductInfoJsonPath = FPaths::Combine(PathToRiderApp, TEXT("Contents"), TEXT("Resources"), TEXT("product-info.json"));
	if (FPaths::FileExists(ProductInfoJsonPath))
	{
		ParseProductInfoJson(Info, ProductInfoJsonPath);
	}
	return Info;
}