public VerbExecutor CreateStandardVerbExecutor(IEnumerable <string> arguments) { VerbExecutor verbExecutor = null; var p = Parser.Default.ParseArguments( arguments, typeof(SignVerb), typeof(PackVerb), typeof(UnpackVerb), typeof(NewCertVerb), typeof(TrustVerb), typeof(AppAttachVerb), typeof(NewModPackVerb), typeof(ExtractCertVerb), typeof(DependenciesVerb), typeof(UpdateImpactVerb), typeof(EditVerbPlaceholder)); p.WithParsed <SignVerb>(verb => { verbExecutor = new SignVerbExecutor(verb, new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()), new LocalConfigurationService(), this.console); }); p.WithParsed <PackVerb>(verb => { verbExecutor = new PackVerbExecutor(verb, this.console); }); p.WithParsed <UnpackVerb>(verb => { verbExecutor = new UnpackVerbExecutor(verb, this.console); }); p.WithParsed <NewCertVerb>(verb => { verbExecutor = new NewCertVerbExecutor(verb, new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()), this.console); }); p.WithParsed <NewModPackVerb>(verb => { verbExecutor = new NewModPackVerbExecutor(verb, new ModificationPackageBuilder(new AppxPacker()), this.console); }); p.WithParsed <TrustVerb>(verb => { verbExecutor = new TrustVerbExecutor(verb, new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()), this.console); }); p.WithParsed <ExtractCertVerb>(verb => { verbExecutor = new ExtractCertVerbExecutor(verb, new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()), this.console); }); p.WithParsed <AppAttachVerb>(verb => { verbExecutor = new AppAttachVerbExecutor(verb, new AppAttachManager(new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()), new LocalConfigurationService()), this.console); }); p.WithParsed <UpdateImpactVerb>(verb => { verbExecutor = new UpdateImpactVerbExecutor(verb, this.console); }); p.WithParsed <DependenciesVerb>(verb => { verbExecutor = new DependenciesVerbExecutor(verb, this.console); }); p.WithParsed <EditVerbPlaceholder>(_ => Task.FromResult(0)); p.WithNotParsed(arg => { var err = arg.FirstOrDefault(); if (err != null) { Environment.ExitCode = (int)err.Tag; } else { Environment.ExitCode = StandardExitCodes.ErrorGeneric; } }); return(verbExecutor); }
public VerbExecutor CreateEditVerbExecutor(string packagePath, IEnumerable <string> arguments, bool inBulkMode = false) { var p = GetEditParser(arguments, inBulkMode); VerbExecutor verbExecutor = null; p.WithParsed <DeleteFileEditVerb>(verb => { verbExecutor = new DeleteFileEditVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <AddCapabilityVerb>(verb => { verbExecutor = new AddCapabilityVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <SetIdentityEditVerb>(verb => { verbExecutor = new SetIdentityVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <SetPropertiesEditVerb>(verb => { verbExecutor = new SetPropertiesVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <SetBuildMetaDataVerb>(verb => { verbExecutor = new SetBuildMetaDataVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <AddFileEditVerb>(verb => { verbExecutor = new AddFileEditVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <ImportRegistryEditVerb>(verb => { verbExecutor = new ImportRegistryVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <SetRegistryKeyEditVerb>(verb => { verbExecutor = new SetRegistryKeyVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <SetRegistryValueEditVerb>(verb => { verbExecutor = new SetRegistryValueVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <DeleteRegistryKeyEditVerb>(verb => { verbExecutor = new DeleteRegistryKeyVerbExecutor(packagePath, verb, this.console); }); p.WithParsed <DeleteRegistryValueEditVerb>(verb => { verbExecutor = new DeleteRegistryValueVerbExecutor(packagePath, verb, this.console); }); if (!inBulkMode) { p.WithParsed <ListEditVerb>(verb => { verbExecutor = new ListEditVerbExecutor(packagePath, verb, this.console); }); } return(verbExecutor); }