Example #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);
        }
Example #2
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;
        }