// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. namespace WixToolset.Extensibility { using System.Collections.Generic; using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; /// /// Interface extensions implement to be able to parse the command-line. /// public interface IExtensionCommandLine { /// /// Gets the supported command line types for this extension. /// /// The supported command line types for this extension. IEnumerable CommandLineSwitches { get; } /// /// Called before the command-line is parsed. /// /// Information about the command-line to be parsed. void PreParse(ICommandLineContext context); /// /// Gives the extension an opportunity pass a command-line argument for another command. /// /// Parser to help parse the argument and additional arguments. /// Argument to parse. /// True if the argument is recognized; otherwise false to allow another extension to process it. bool TryParseArgument(ICommandLineParser parser, string argument); /// /// Gives the extension an opportunity to provide a command. /// /// Parser to help parse the argument and additional arguments. /// Argument to parse. /// /// True if the argument is recognized as a command; otherwise false to allow another extension to process it. bool TryParseCommand(ICommandLineParser parser, string argument, out ICommandLineCommand command); /// /// Called after the command-line is parsed. /// void PostParse(); } }