/// <summary> /// Deploys zip file to Kudu wesite. /// </summary> /// <param name="client">The Kudu client.</param> /// <param name="localPath">The local source file path.</param> /// <example> /// <code> /// #addin nuget:?package=Cake.Kudu.Client /// /// string baseUri = EnvironmentVariable("KUDU_CLIENT_BASEURI"), /// userName = EnvironmentVariable("KUDU_CLIENT_USERNAME"), /// password = EnvironmentVariable("KUDU_CLIENT_PASSWORD"); /// /// IKuduClient kuduClient = KuduClient( /// baseUri, /// userName, /// password); /// /// DirectoryPath sourceDirectoryPath = "./Documentation/"; /// FilePath zipFilePath = "./Documentation.zip"; /// /// Zip(sourceDirectoryPath, zipFilePath); /// /// kuduClient.ZipDeployFile( /// zipFilePath); /// </code> /// </example> public static void ZipDeployFile( this IKuduClient client, FilePath localPath) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (localPath == null) { throw new ArgumentNullException(nameof(localPath)); } if (!client.FileSystem.Exist(localPath)) { throw new FileNotFoundException("Could not find local file to deploy", localPath.FullPath); } using (var localStream = client.FileSystem.GetFile(localPath).OpenRead()) { client.ZipDeployStream(localStream); } }