Пример #1
0
 void IReceiveOptions.ReceiveFrom(OptionSet options)
 {
     options.AddCollector(ObjectFilter);
     options.Add("site=", "Only include objects associated with a specific site", o => Site = o);
     options.Add("base=", "Specify a base path to assume for all items", o => BasePath      = new SsrsObjectPath(o));
     options.Add("timeout=", "Number of seconds to wait for SSRS webservice responses", (int o) => ReportingServiceClientFactory.Timeout = TimeSpan.FromSeconds(o));
 }
Пример #2
0
 void IReceiveOptions.ReceiveFrom(OptionSet options)
 {
     options.AddCollector(ObjectFilter);
     options.Add("site=", "Only include objects associated with a specific site", o => Site = o.Unquote("'"));
     options.Add("base=", "Specify a base path to assume for all items", o => BasePath      = new SsrsObjectPath(o));
     options.Add("overwrite", "Replace existing objects", o => Overwrite          = true);
     options.Add("backup=", "Back up objects before overwriting", o => BackupPath = o);
     options.Add("rewrite=", "Modify objects prior to import", o => RewriteRules.Add(o.Unquote("'")));
     options.Add("timeout=", "Number of seconds to wait for SSRS webservice responses", (int o) => ReportingServiceClientFactory.Timeout = TimeSpan.FromSeconds(o));
 }
Пример #3
0
        public static IDebugJobFactory ParseArguments(OptionSet options, Arguments mainArguments, string[] args)
        {
            mainArguments.JobType = new JobTypeParser().ParseJobTypeInPlace(ref args);
            if (mainArguments.JobType == null)
            {
                throw new ErrorWithExitCodeException(1, "")
                      {
                          ShowUsage = true
                      }
            }
            ;
            var jobFactory = SelectFactory(mainArguments.JobType.Value);

            if (jobFactory == null)
            {
                throw new ErrorWithExitCodeException(1, $"Unsupported operation: {mainArguments.JobType}")
                      {
                          ShowUsage = true
                      }
            }
            ;

            options.AddCollector(jobFactory);

            var remainingArgs = options.Parse(args).ToArray();

            if (mainArguments.ShowUsage)
            {
                throw new ErrorWithExitCodeException(1, "")
                      {
                          ShowUsage = true
                      };
            }
            if (remainingArgs.Any())
            {
                throw new ErrorWithExitCodeException(1, $"Unrecognised arguments: {String.Join(" ", remainingArgs)}");
            }
            return(jobFactory);
        }
Пример #4
0
        public static int Main(string[] args)
        {
            if (!AssertSufficientDotNetVersion())
            {
                return(255);
            }

            var options       = new OptionSet();
            var mainArguments = options.AddCollector(new Arguments());

            try
            {
                var jobFactory = ParseArguments(options, mainArguments, args);
                var console    = new ConsoleLog(Console.Error, mainArguments.Verbose);

                jobFactory.Validate();

                var job = jobFactory.CreateJob(console);

                console.WriteLineVerbose($"Running as a {ProcessArchitecture.FromCurrentProcess().Describe()} process.");
                ExecuteJob(console, job);

                return(0);
            }
            catch (Requires32BitEnvironmentException)
            {
                return(Bootstrap.RecurseInto32BitProcess());
            }
            catch (Requires64BitEnvironmentException ex)
            {
                Console.Error.WriteLine(ex.Message);
                return(64);
            }
            catch (ErrorWithExitCodeException ex)
            {
                if (!String.IsNullOrEmpty(ex.Message))
                {
                    Console.Error.WriteLine(ex.Message);
                }
                if (ex.ShowUsage)
                {
                    ShowUsage(mainArguments.JobType, options);
                }
                return(ex.ExitCode);
            }
            catch (FeatureUnavailableException ex)
            {
                Console.Error.WriteLine(ex.Message);
                if (mainArguments.Verbose)
                {
                    Console.Error.WriteLine(ex.InnerException);
                }
                return(254);
            }
            catch (Exception ex)
            {
                // Otherwise-unhandled exception.
                Console.Error.WriteLine(ex);
                return(255);
            }
        }
Пример #5
0
 void IReceiveOptions.ReceiveFrom(OptionSet options)
 {
     options.AddCollector(RunningProcess);
     options.Add("d=|dumpfile=", "Dump process memory to this path.", o => DumpFile = o);
     options.Add("f|force", "Overwrite the dumpfile if it already exists.", o => OverwriteDumpFileIfExists = true);
 }