public bool ExecuteTask(ICommandFactory commandFactory, IFileSystem fileSystem, IHelpers helpers) { if (Version.Contains("*")) { Log.LogError("InstallDotNetTool task doesn't accept * in the version"); return(false); } // We install the tool in [dest]/[name]/[version] because if we tried to install 2 versions in the same dir, // `dotnet tool install` would fail. var version = Version.ToLowerInvariant(); ToolPath = Path.Combine(DestinationPath, Name, Version); if (!fileSystem.DirectoryExists(ToolPath)) { fileSystem.CreateDirectory(DestinationPath); } string versionInstallPath = Path.Combine(ToolPath, ".store", Name.ToLowerInvariant(), version); return(helpers.DirectoryMutexExec(() => { if (fileSystem.DirectoryExists(versionInstallPath)) { Log.LogMessage($"{Name} v{Version} is already installed"); return true; } return InstallTool(commandFactory); }, ToolPath)); }
private void DownloadProvisioningProfile(TargetPlatform platform) { var targetFile = Path.Combine(TmpDir, GetProvisioningProfileFileName(platform)); using var client = new WebClient(); _helpers.DirectoryMutexExec(async() => { if (File.Exists(targetFile)) { Log.LogMessage($"Provisioning profile is already downloaded"); return; } Log.LogMessage($"Downloading {platform} provisioning profile to {targetFile}"); await client.DownloadFileTaskAsync(new Uri(GetProvisioningProfileUrl(platform)), targetFile); }, TmpDir); }
public Task <string> UploadAsync(IBlobContainer payloadContainer, Action <string> log, CancellationToken cancellationToken) => Task.FromResult( s_helpers.DirectoryMutexExec( () => DoUploadAsync(payloadContainer, log, cancellationToken), Archive.FullName));
public Task <string> UploadAsync(IBlobContainer payloadContainer, Action <string> log, CancellationToken cancellationToken) => Task.FromResult( s_helpers.DirectoryMutexExec( () => DoUploadAsync(payloadContainer, log, cancellationToken), NormalizedDirectoryPath));