Beispiel #1
0
        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;
        }