static TArray GetManuallyInstalledRiders()

in Source/RiderSourceCodeAccess/Private/RiderPathLocator/Linux/RiderPathLocatorLinux.cpp [76:112]


static TArray<FInstallInfo> GetManuallyInstalledRiders()
{
	TArray<FInstallInfo> Result;
	TArray<FString> RiderPaths;

	const TArray RiderLookupPaths = {
		GetHomePath(),
		FString(TEXT("/opt")),
		FPaths::Combine(TEXT("/usr"), TEXT("local"), TEXT("bin"))
	};

	for(const FString& RiderLookupPath: RiderLookupPaths)
	{
		FString RiderLookupPathMask = FPaths::Combine(RiderLookupPath,TEXT("*Rider*"));
		IFileManager::Get().FindFiles(RiderPaths, *RiderLookupPathMask, false, true);

		for(const FString& RiderPath: RiderPaths)
		{
			FString FullPath = FPaths::Combine(RiderLookupPath, RiderPath, TEXT("bin"), TEXT("rider.sh"));
			TOptional<FInstallInfo> InstallInfo = FRiderPathLocator::GetInstallInfoFromRiderPath(FullPath, FInstallInfo::EInstallType::Installed);
			if(InstallInfo.IsSet())
			{
				Result.Add(InstallInfo.GetValue());
			}
		}
		RiderPaths.Empty();
	}

	FString FullPath = TEXT("/snap/rider/current/bin/rider.sh");
	TOptional<FInstallInfo> InstallInfo = FRiderPathLocator::GetInstallInfoFromRiderPath(FullPath, FInstallInfo::EInstallType::Installed);
	if(InstallInfo.IsSet())
	{
		Result.Add(InstallInfo.GetValue());
	}

	return Result;
}