// 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();
}
}