// 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.Data
{
using System.Threading;
using System.Threading.Tasks;
using WixToolset.Extensibility.Services;
///
/// Custom command.
///
public interface ICommandLineCommand
{
///
/// Indicates the command-line should show the command-line logo.
///
bool ShowLogo { get; }
///
/// Indicates the command-line parsing can stop.
///
bool StopParsing { get; }
///
/// Executes the command.
///
/// Cancellation token.
/// Exit code for the command.
Task ExecuteAsync(CancellationToken cancellationToken);
///
/// Allows the command to parse command-line arguments.
///
/// 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);
}
}