/// <summary> /// Executes an arbitrary command line and return its output. /// </summary> /// <param name="client">The Kudu client.</param> /// <param name="command">The command to execute.</param> /// <param name="directory">The remote directory to execute command in.</param> /// <param name="arguments">The arguments.</param> /// <returns><see ref="KuduCommandResult"/></returns> /// <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); /// /// IKuduCommandResult commandResult = kuduClient.ExecuteCommand( /// "echo", /// "D:/home/site/wwwroot", /// "hello"); /// /// Information( /// "Output:\r\n{0}\r\nError:\r\n{1}\r\nExitCode: {2}", /// commandResult.Output, /// commandResult.Error, /// commandResult.ExitCode); /// </code> /// </example> public static IKuduCommandResult ExecuteCommand( this IKuduClient client, string command, string directory, ProcessArgumentBuilder arguments = null) { if (client == null) { throw new ArgumentNullException(nameof(client)); } if (string.IsNullOrWhiteSpace(command)) { throw new ArgumentNullException(nameof(command)); } if (string.IsNullOrWhiteSpace(directory)) { throw new ArgumentNullException(nameof(directory)); } var commandArgs = new ProcessArgumentBuilder().AppendQuoted(command); arguments?.CopyTo(commandArgs); var param = new { command = commandArgs.Render(), dir = directory, }; return(client.HttpPostJsonObject <object, KuduCommandResult>( "/api/command", param)); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreEfDatabaseUpdateSettings settings) { ProcessArgumentBuilder builder = CreateArgumentBuilder(settings); builder.Append("ef"); builder.Append("database"); builder.Append("update"); settings.SetProject(project); if (!string.IsNullOrWhiteSpace(settings.Migration)) { builder.AppendQuoted(settings.Migration); } if (!string.IsNullOrEmpty(settings.Context)) { builder.Append("--context"); builder.AppendQuoted(settings.Context); } // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
protected ProcessArgumentBuilder GetArguments(TSettings settings, ProcessArgumentBuilder arguments = null) { var builder = CreateArgumentBuilder(settings); arguments?.CopyTo(builder); builder.Append("--xml"); return(builder); }
protected ProcessArgumentBuilder GetArguments(TSettings settings, ProcessArgumentBuilder arguments = null) { var builder = CreateArgumentBuilder(settings); arguments?.CopyTo(builder); builder.Append("--machinereadable"); builder.Append("--fieldseparator={0}", FIELD_SEPARATOR_STRING); return(builder); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreRunSettings settings) { var builder = CreateArgumentBuilder(settings); builder.Append("run"); // Specific path? if (project != null) { builder.Append("--project"); builder.AppendQuoted(project); } // Framework if (!string.IsNullOrEmpty(settings.Framework)) { builder.Append("--framework"); builder.Append(settings.Framework); } // Configuration if (!string.IsNullOrEmpty(settings.Configuration)) { builder.Append("--configuration"); builder.Append(settings.Configuration); } // No Restore if (settings.NoRestore) { builder.Append("--no-restore"); } // No Build if (settings.NoBuild) { builder.Append("--no-build"); } // Runtime if (!string.IsNullOrEmpty(settings.Runtime)) { builder.Append("--runtime"); builder.Append(settings.Runtime); } // Arguments if (!arguments.IsNullOrEmpty()) { builder.Append("--"); arguments.CopyTo(builder); } return(builder); }
/// <summary> /// Copies the arguments to the specified builder. /// </summary> /// <param name="toCopy">To copy.</param> /// <param name="builder">The builder.</param> /// <returns></returns> protected ProcessArgumentBuilder CopyArgumentsTo(ProcessArgumentBuilder toCopy, ProcessArgumentBuilder builder = null) { if (builder == null) { builder = new ProcessArgumentBuilder(); } toCopy.CopyTo(builder); return(builder); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreEfMigrationScriptSettings settings) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); ProcessArgumentBuilder builderArguments = CreateArgumentBuilder(settings); builder.Append("ef"); builder.Append("migrations"); builder.Append("script"); settings.SetProject(project); if (!string.IsNullOrWhiteSpace(settings.From)) { builder.AppendQuoted(settings.From); } if (!string.IsNullOrWhiteSpace(settings.To)) { builder.AppendQuoted(settings.To); } builder.AppendBuilder(builderArguments); if (!string.IsNullOrWhiteSpace(settings.Output)) { builder.Append("--output"); builder.AppendQuoted(settings.Output); } if (!string.IsNullOrEmpty(settings.Context)) { builder.Append("--context"); builder.AppendQuoted(settings.Context); } if (settings.Idempotent) { builder.Append("--idempotent"); } if (settings.NoBuild) { builder.Append("--no-build"); } // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
protected ProcessArgumentBuilder GetArguments(TSettings settings, ProcessArgumentBuilder arguments = null) { var builder = CreateArgumentBuilder(settings); arguments?.CopyTo(builder); foreach (var formatString in FormatStrings) { builder.Append("--{0}=\"{1}\"", formatString.Key, formatString.Value); } return(builder); }
private ProcessArgumentBuilder GetArguments(string command, ProcessArgumentBuilder arguments, DotNetCoreToolSettings settings) { var builder = CreateArgumentBuilder(settings); builder.Append(command); // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
private ProcessArgumentBuilder GetArguments(FilePath assemblyPath, ProcessArgumentBuilder arguments, DotNetCoreSettings settings) { var builder = CreateArgumentBuilder(settings); assemblyPath = assemblyPath.IsRelative ? assemblyPath.MakeAbsolute(_environment) : assemblyPath; builder.Append(assemblyPath.FullPath); if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreEfMigrationListerSettings settings) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); ProcessArgumentBuilder builderArguments = CreateArgumentBuilder(settings); builder.Append("ef"); builder.Append("migrations"); builder.Append("list"); settings.SetProject(project); if (!string.IsNullOrWhiteSpace(settings.Project)) { builder.Append("--project"); builder.AppendQuoted(settings.Project); } if (!string.IsNullOrWhiteSpace(settings.StartupProject)) { builder.Append("--startup-project"); builder.AppendQuoted(settings.StartupProject); } if (settings.PrefixOutput) { builder.Append("--prefix-output"); } if (settings.NoBuild) { builder.Append("--no-build"); } // return json output builder.Append("--json"); // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreEfMigrationAddSettings settings) { ProcessArgumentBuilder builder = new ProcessArgumentBuilder(); ProcessArgumentBuilder builderArguments = CreateArgumentBuilder(settings); builder.Append("ef"); builder.Append("migrations"); builder.Append("add"); settings.SetProject(project); if (!string.IsNullOrWhiteSpace(settings.Migration)) { builder.AppendQuoted(settings.Migration); } builder.AppendBuilder(builderArguments); if (!string.IsNullOrWhiteSpace(settings.OutputDir)) { builder.Append("--output-dir"); builder.AppendQuoted(settings.OutputDir); } if (!string.IsNullOrEmpty(settings.Context)) { builder.Append("--context"); builder.AppendQuoted(settings.Context); } if (settings.Json) { builder.Append("--json"); } // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
private ProcessArgumentBuilder GetArguments(FilePath assemblyPath, ProcessArgumentBuilder arguments, DotNetCoreExecuteSettings settings) { var builder = CreateArgumentBuilder(settings); if (!string.IsNullOrWhiteSpace(settings.FrameworkVersion)) { builder.Append("--fx-version"); builder.Append(settings.FrameworkVersion); } builder.AppendQuoted(assemblyPath.MakeAbsolute(_environment).FullPath); if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } return(builder); }
public static void SetContextSettings(this ProcessArgumentBuilder builder, ProcessArgumentBuilder arguments, string project, DotNetCoreEfContextSettings settings) { settings.SetProject(project); if (!string.IsNullOrEmpty(settings.Context)) { builder.Append("--context"); builder.AppendQuoted(settings.Context); } if (settings.Force) { builder.Append("--force"); } // Arguments if (!arguments.IsNullOrEmpty()) { arguments.CopyTo(builder); } }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreTestSettings settings) { var builder = CreateArgumentBuilder(settings); builder.Append("test"); // Specific path? if (project != null) { builder.AppendQuoted(project); } // Settings if (settings.Settings != null) { builder.Append("--settings"); builder.AppendQuoted(settings.Settings.MakeAbsolute(_environment).FullPath); } // Filter if (!string.IsNullOrWhiteSpace(settings.Filter)) { builder.Append("--filter"); builder.AppendQuoted(settings.Filter); } // Settings if (settings.TestAdapterPath != null) { builder.Append("--test-adapter-path"); builder.AppendQuoted(settings.TestAdapterPath.MakeAbsolute(_environment).FullPath); } // Logger #pragma warning disable CS0618 if (!string.IsNullOrWhiteSpace(settings.Logger)) { builder.Append("--logger"); builder.AppendQuoted(settings.Logger); } #pragma warning restore CS0618 // Loggers if (settings.Loggers != null) { foreach (var logger in settings.Loggers) { builder.Append("--logger"); builder.AppendQuoted(logger); } } // Output directory if (settings.OutputDirectory != null) { builder.Append("--output"); builder.AppendQuoted(settings.OutputDirectory.MakeAbsolute(_environment).FullPath); } // Frameworks if (!string.IsNullOrEmpty(settings.Framework)) { builder.Append("--framework"); builder.Append(settings.Framework); } // Configuration if (!string.IsNullOrEmpty(settings.Configuration)) { builder.Append("--configuration"); builder.Append(settings.Configuration); } // Collectors if (settings.Collectors != null) { foreach (var collector in settings.Collectors) { builder.Append("--collect"); builder.AppendQuoted(collector); } } // Diagnostic file if (settings.DiagnosticFile != null) { builder.Append("--diag"); builder.AppendQuoted(settings.DiagnosticFile.MakeAbsolute(_environment).FullPath); } // No Build if (settings.NoBuild) { builder.Append("--no-build"); } // No Restore if (settings.NoRestore) { builder.Append("--no-restore"); } // No Logo if (settings.NoLogo) { builder.Append("--nologo"); } if (settings.ResultsDirectory != null) { builder.Append("--results-directory"); builder.AppendQuoted(settings.ResultsDirectory.MakeAbsolute(_environment).FullPath); } if (settings.VSTestReportPath != null) { builder.AppendSwitchQuoted($"--logger trx;LogFileName", "=", settings.VSTestReportPath.MakeAbsolute(_environment).FullPath); } if (!string.IsNullOrEmpty(settings.Runtime)) { builder.Append("--runtime"); builder.Append(settings.Runtime); } // Sources if (settings.Sources != null) { foreach (var source in settings.Sources) { builder.Append("--source"); builder.AppendQuoted(source); } } // Blame if (settings.Blame) { builder.Append("--blame"); } if (!arguments.IsNullOrEmpty()) { builder.Append("--"); arguments.CopyTo(builder); } return(builder); }
private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuilder arguments, DotNetCoreRunSettings settings) { var builder = CreateArgumentBuilder(settings); builder.Append("run"); // Specific path? if (project != null) { builder.Append("--project"); builder.AppendQuoted(project); } // Framework if (!string.IsNullOrEmpty(settings.Framework)) { builder.Append("--framework"); builder.Append(settings.Framework); } // Configuration if (!string.IsNullOrEmpty(settings.Configuration)) { builder.Append("--configuration"); builder.Append(settings.Configuration); } // No Restore if (settings.NoRestore) { builder.Append("--no-restore"); } // No Build if (settings.NoBuild) { builder.Append("--no-build"); } // Runtime if (!string.IsNullOrEmpty(settings.Runtime)) { builder.Append("--runtime"); builder.Append(settings.Runtime); } // Sources if (settings.Sources != null) { foreach (var source in settings.Sources) { builder.Append("--source"); builder.AppendQuoted(source); } } // Roll Forward Policy if (!(settings.RollForward is null)) { builder.Append("--roll-forward"); builder.Append(settings.RollForward.Value.ToString("F")); } // Arguments if (!arguments.IsNullOrEmpty()) { builder.Append("--"); arguments.CopyTo(builder); } return(builder); }