Net.Sf.Dbdeploy.OptionsManager.ParseOptions C# (CSharp) Method

ParseOptions() public static method

Parses the specified args into a deployments configuration.
Throws when unknown or invalid parameters are found.
public static ParseOptions ( string args ) : Net.Sf.Dbdeploy.Configuration.DbDeploymentsConfig
args string The args.
return Net.Sf.Dbdeploy.Configuration.DbDeploymentsConfig
        public static DbDeploymentsConfig ParseOptions(string[] args)
        {
            // Initialize configuration with a single deployment.
            var deploymentsConfig = new DbDeploymentsConfig();
            try
            {
                var configFile = new ConfigFileInfo();
                var config = new DbDeployConfig();
                OptionSet options = Initialize(config, configFile);
                deploymentsConfig.Deployments.Add(config);

                List<string> unknown = options.Parse(args);

                if (unknown != null && unknown.Count != 0)
                {
                    foreach (var s in unknown)
                    {
                        // empty "unkown" parameters are allowed
                        if (s != null && !string.IsNullOrEmpty(s.Trim()))
                        {
                            throw new UsageException("Unkown parameter(s): " + string.Join(", ", unknown.ToArray()));
                        }
                    }
                }

                // If a configuration file was specified in the command, use that instead of options.
                if (configFile.FileInfo != null)
                {
                    var configurationManager = new DbDeployConfigurationManager();
                    deploymentsConfig = configurationManager.ReadConfiguration(configFile.FileInfo.FullName);
                }
            }
            catch (OptionException e)
            {
                throw new UsageException(e.Message, e);
            }

            return deploymentsConfig;
        }

Usage Example

Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            var exitCode = 0;

            try
            {
                // Read arguments from command line
                var deploymentsConfig = OptionsManager.ParseOptions(args);
                var deployer          = new DbDeployer();
                foreach (var config in deploymentsConfig.Deployments)
                {
                    deployer.Execute(config, Console.Out);
                }
            }
            catch (UsageException ex)
            {
                Console.Error.WriteLine("ERROR: " + ex.Message);

                OptionsManager.PrintUsage();
            }
            catch (DbDeployException ex)
            {
                Console.Error.WriteLine(ex.Message);
                exitCode = 1;
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("Failed to apply changes: " + ex.Message);
                Console.Error.WriteLine(ex.StackTrace);
                exitCode = 2;
            }

            Environment.Exit(exitCode);
        }