/// <summary> /// Returns the path to the folder containing cached files for the specified platform. /// </summary> /// <param name="platform">Identifies the platform.</param> /// <returns>The folder path.</returns> public static string GetPlatformCacheFolder(KubeHostPlatform platform) { string subfolder; switch (platform) { case KubeHostPlatform.Linux: subfolder = "linux"; break; case KubeHostPlatform.Osx: subfolder = "osx"; break; case KubeHostPlatform.Windows: subfolder = "windows"; break; default: throw new NotImplementedException($"Platform [{platform}] is not implemented."); } var path = Path.Combine(CacheFolder, subfolder); Directory.CreateDirectory(path); return(path); }
/// <summary> /// Returns the path to the cached file for a specific named component with optional version. /// </summary> /// <param name="platform">Identifies the platform.</param> /// <param name="component">The component name.</param> /// <param name="version">The component version (or <c>null</c>).</param> /// <returns>The component file path.</returns> public static string GetCachedComponentPath(KubeHostPlatform platform, string component, string version) { Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(component)); string path; if (string.IsNullOrEmpty(version)) { path = Path.Combine(GetPlatformCacheFolder(platform), component); } else { path = Path.Combine(GetPlatformCacheFolder(platform), $"{component}-{version}"); } return(path); }