예제 #1
0
        static CommandLineConfigs()
        {
            DryRunCommand.AddAlias(WhatIfCommandName);

            UninstallRootCommand.AddCommand(ListCommand);
            UninstallRootCommand.AddCommand(DryRunCommand);
            UninstallRootCommand.AddCommand(RemoveCommand);

            var supportedBundleTypeNames = SupportedBundleTypeConfigs.GetSupportedBundleTypes().Select(type => type.OptionName);

            RemoveAuxOptions = UninstallBundleTypeOptions
                               .Where(option => supportedBundleTypeNames.Contains(option.Name))
                               .Concat(AdditionalUninstallOptions)
                               .Append(YesOption);
            if (RuntimeInfo.RunningOnWindows)
            {
                RemoveAuxOptions = RemoveAuxOptions.Concat(ArchUninstallOptions);
            }
            AssignOptionsToCommand(RemoveCommand, RemoveAuxOptions
                                   .Concat(UninstallFilterBundlesOptions), true);

            DryRunAuxOptions = UninstallBundleTypeOptions
                               .Where(option => supportedBundleTypeNames.Contains(option.Name))
                               .Concat(AdditionalUninstallOptions);
            if (RuntimeInfo.RunningOnWindows)
            {
                DryRunAuxOptions = DryRunAuxOptions.Concat(ArchUninstallOptions);
            }
            AssignOptionsToCommand(DryRunCommand, DryRunAuxOptions
                                   .Concat(UninstallFilterBundlesOptions), true);

            ListAuxOptions = ListBundleTypeOptions
                             .Where(option => supportedBundleTypeNames.Contains(option.Name))
                             .Append(VerbosityOption);
            if (RuntimeInfo.RunningOnWindows)
            {
                ListAuxOptions = ListAuxOptions
                                 .Append(ListX64Option)
                                 .Append(ListX86Option);
            }
            AssignOptionsToCommand(ListCommand, ListAuxOptions);

            var bundleCollector = RuntimeInfo.RunningOnWindows ? new RegistryQuery() as IBundleCollector : new FileSystemExplorer() as IBundleCollector;

            ListCommand.Handler   = CommandHandler.Create(ExceptionHandler.HandleException(() => ListCommandExec.Execute(bundleCollector)));
            DryRunCommand.Handler = CommandHandler.Create(ExceptionHandler.HandleException(() => DryRunCommandExec.Execute(bundleCollector)));
            RemoveCommand.Handler = CommandHandler.Create(ExceptionHandler.HandleException(() => UninstallCommandExec.Execute(bundleCollector)));

            UninstallCommandParser = new CommandLineBuilder(UninstallRootCommand)
                                     .UseDefaults()
                                     .UseVersionOption()
                                     .UseHelpBuilder(context => new UninstallHelpBuilder(context.Console))
                                     .Build();
            CommandLineParseResult = UninstallCommandParser.Parse(Environment.GetCommandLineArgs());
        }
예제 #2
0
        public static BundleType GetTypeSelection(this CommandResult commandResult)
        {
            var supportedBundleTypes = SupportedBundleTypeConfigs.GetSupportedBundleTypes();

            var typeSelection = supportedBundleTypes
                                .Where(type => commandResult.OptionResult(type.OptionName) != null)
                                .Select(type => type.Type)
                                .Aggregate((BundleType)0, (orSum, next) => orSum | next);

            return(typeSelection == 0 ?
                   supportedBundleTypes.Select(type => type.Type).Aggregate((BundleType)0, (orSum, next) => orSum | next) :
                   typeSelection);
        }
예제 #3
0
        public static BundleType GetTypeSelection(this ParseResult parseResult)
        {
            var supportedBundleTypes = SupportedBundleTypeConfigs.GetSupportedBundleTypes();

            var typeSelection = supportedBundleTypes
                                .Where(type => parseResult.ValueForOption <bool>($"--{type.OptionName}"))
                                .Select(type => type.Type)
                                .Aggregate((BundleType)0, (orSum, next) => orSum | next);

            return(typeSelection == 0 ?
                   supportedBundleTypes.Select(type => type.Type).Aggregate((BundleType)0, (orSum, next) => orSum | next) :
                   typeSelection);
        }
예제 #4
0
        static CommandLineConfigs()
        {
            UninstallRootCommand.AddArgument(new Argument <IEnumerable <string> >
            {
                Name        = LocalizableStrings.UninstallNoOptionArgumentName,
                Description = LocalizableStrings.UninstallNoOptionArgumentDescription
            });

            UninstallRootCommand.AddCommand(ListCommand);

            var supportedBundleTypeNames = SupportedBundleTypeConfigs.GetSupportedBundleTypes().Select(type => type.OptionName);

            var supportedUninstallBundleTypeOptions = new Option[]
            {
                UninstallSdkOption,
                UninstallRuntimeOption,
                UninstallAspNetRuntimeOption,
                UninstallHostingBundleOption
            }
            .Where(option => supportedBundleTypeNames.Contains(option.Name));

            var supportedListBundleTypeOptions = new Option[]
            {
                ListSdkOption,
                ListRuntimeOption,
                ListAspNetRuntimeOption,
                ListHostingBundleOption
            }
            .Where(option => supportedBundleTypeNames.Contains(option.Name));

            UninstallAuxOptions = supportedUninstallBundleTypeOptions
                                  .Append(VerbosityOption)
                                  .Append(UninstallX64Option)
                                  .Append(UninstallX86Option)
                                  .Append(VersionOption)
                                  .Append(DryRunOption)
                                  .Append(YesOption);

            ListAuxOptions = supportedListBundleTypeOptions
                             .Append(VerbosityOption)
                             .Append(ListX64Option)
                             .Append(ListX86Option);

            foreach (var option in UninstallMainOptions
                     .Concat(UninstallAuxOptions)
                     .OrderBy(option => option.Name))
            {
                UninstallRootCommand.AddOption(option);
            }

            foreach (var option in ListAuxOptions
                     .OrderBy(option => option.Name))
            {
                ListCommand.AddOption(option);
            }

            ListCommand.Handler          = CommandHandler.Create(ExceptionHandler.HandleException(() => ListCommandExec.Execute()));
            UninstallRootCommand.Handler = CommandHandler.Create(ExceptionHandler.HandleException(() => UninstallCommandExec.Execute()));

            CommandLineParseResult = UninstallRootCommand.Parse(Environment.GetCommandLineArgs());
        }