in code/KustoCopyConsole/Program.cs [113:154]
private static async Task RunOptionsAsync(CommandLineOptions options)
{
ConfigureTrace(options.Verbose);
var cancellationTokenSource = new CancellationTokenSource();
var taskCompletionSource = new TaskCompletionSource();
var parameterization = MainJobParameterization.FromOptions(options);
AppDomain.CurrentDomain.ProcessExit += (e, s) =>
{
Trace.TraceInformation("Exiting process...");
cancellationTokenSource.Cancel();
taskCompletionSource.Task.Wait();
};
Trace.WriteLine("");
Trace.WriteLine("Parameterization:");
Trace.WriteLine("");
Trace.WriteLine(parameterization.ToYaml());
Trace.WriteLine("");
try
{
await using (var mainRunner = await MainRunner.CreateAsync(
new Version(AssemblyVersion),
parameterization,
$"KUSTO-COPY;{AssemblyVersion}",
cancellationTokenSource.Token))
{
Trace.WriteLine("Processing...");
Trace.WriteLine("");
await mainRunner.RunAsync(cancellationTokenSource.Token);
}
}
catch(Exception)
{
await cancellationTokenSource.CancelAsync();
throw;
}
finally
{
taskCompletionSource.SetResult();
}
}