Files
sqltoolsservice/src/Microsoft.SqlTools.Migration/Program.cs
2023-03-02 09:39:54 -08:00

67 lines
2.2 KiB
C#

//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
#nullable disable
using System;
using System.IO;
using System.Diagnostics;
using Microsoft.SqlTools.Extensibility;
using Microsoft.SqlTools.Utility;
using System.Threading.Tasks;
namespace Microsoft.SqlTools.Migration
{
internal class Program
{
private const string ServiceName = "MicrosoftSqlToolsMigration.exe";
internal static async Task Main(string[] args)
{
try
{
CommandOptions commandOptions = new CommandOptions(args, ServiceName);
if (commandOptions.ShouldExit)
{
return;
}
string logFilePath = "MicrosoftSqlToolsMigration";
if (!string.IsNullOrWhiteSpace(commandOptions.LogFilePath))
{
logFilePath = Path.Combine(commandOptions.LogFilePath, logFilePath);
}
else
{
logFilePath = Logger.GenerateLogFilePath(logFilePath);
}
Logger.Initialize(SourceLevels.Verbose, piiEnabled: commandOptions.PiiLogging, logFilePath, "Migration", commandOptions.AutoFlushLog);
Logger.Verbose("Starting SqlTools Migration Server...");
ExtensionServiceHost serviceHost = new ExtensionServiceHost(
new ExtensibleServiceHostOptions
{
HostName = "Migration",
HostProfileId = "SqlTools.Migration",
HostVersion = new Version(1, 0, 0, 0),
InitializeServiceCallback = (server, serivce) => { }
});
serviceHost.RegisterAndInitializeService(new MigrationService());
await serviceHost.WaitForExitAsync();
Logger.Verbose("SqlTools Migration Server exiting....");
}
catch (Exception ex)
{
Logger.Error(ex);
throw ex;
}
}
}
}