// Copyright Keysight Technologies 2012-2019 // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, you can obtain one at http://mozilla.org/MPL/2.0/. using System.Threading; namespace OpenTap.Cli { /// /// Plugin type that defines a sub command for the OpenTAP CLI (tap.exe). /// Deriving from this, and annotating the class and any public properties with and attributes /// will allow it to be called from the OpenTAP CLI. /// public interface ICliAction : ITapPlugin { /// /// The code to be executed by the action. /// /// Return 0 to indicate success. Otherwise return a custom errorcode that will be set as the exitcode from the CLI. int Execute(CancellationToken cancellationToken); } internal static class ICliActionExecuteHelper { /// /// Logs the assembly name and version then executes the action with the given parameters. /// /// The action to be executed. /// The parameters for the action. /// Return 0 to indicate success. Otherwise return a custom errorcode that will be set as the exitcode from the CLI. public static int Execute(this ICliAction action, string[] parameters) { return action.PerformExecute(parameters); } } }