Exemple #1
0
        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);
        }
Exemple #3
0
 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));