private static int Main(string[] args) { var options = ParseCommandLineArguments(args); if (options == null) { return(ExitCodes.InvalidArguments); } using (var logger = new Logger()) using (var logSink = new RollingFileLogSink(new RollingFileSettings(options.LogFolder, "SQL Scripter"))) { logger.AddLogSink(logSink); try { LogHeader(logger, options); SetupFolders(options.LogFolder, options.OutputFolder); var scriptFileManager = new ScriptFileManager(Path.Combine(options.OutputFolder, options.Server)); var server = new ServerWrapper(new Server(options.Server)); var scripter = new Scripter(server, scriptFileManager, logger) .IncludeTheseDatabases(options.IncludeDatabases.ToArray()) .ExcludedTheseDatabases(options.ExcludeDatabases.ToArray()); ConfigureScriptingSources(options, scripter); scripter.DumpScripts(); logger.PostEntry("DONE"); } catch (Exception ex) { logger.PostException(ex); Console.WriteLine(ex); return(ExitCodes.UnexpectedException); } logger.CompleteAllAsync().Wait(new TimeSpan(0, 0, 3)); } return(ExitCodes.Ok); }
private static int Main(string[] args) { var options = ParseCommandLineArguments(args); if (options == null) return ExitCodes.InvalidArguments; using (var logger = new Logger()) using(var logSink = new RollingFileLogSink(new RollingFileSettings(options.LogFolder, "SQL Scripter"))) { logger.AddLogSink(logSink); try { LogHeader(logger, options); SetupFolders(options.LogFolder, options.OutputFolder); var scriptFileManager = new ScriptFileManager(Path.Combine(options.OutputFolder, options.Server)); var server = new ServerWrapper(new Server(options.Server)); var scripter = new Scripter(server, scriptFileManager, logger) .IncludeTheseDatabases(options.IncludeDatabases.ToArray()) .ExcludedTheseDatabases(options.ExcludeDatabases.ToArray()); ConfigureScriptingSources(options, scripter); scripter.DumpScripts(); logger.PostEntry("DONE"); } catch (Exception ex) { logger.PostException(ex); Console.WriteLine(ex); return ExitCodes.UnexpectedException; } logger.CompleteAllAsync().Wait(new TimeSpan(0, 0, 3)); } return ExitCodes.Ok; }