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