예제 #1
0
        public static Command Create(HttpClient httpClient)
        {
            var command = new Command(
                name: "add-file",
                description: CoreStrings.AddFileCommandDescription);

            var projectOption = CommonOptions.ProjectOption();
            var serviceOption = CommonOptions.ServiceOption();
            var additionalImportDirsOption = CommonOptions.AdditionalImportDirsOption();
            var accessOption  = CommonOptions.AccessOption();
            var filesArgument = new Argument <string[]>
            {
                Name        = "files",
                Description = CoreStrings.AddFileCommandArgumentDescription,
                Arity       = ArgumentArity.OneOrMore
            };

            command.AddOption(projectOption);
            command.AddOption(serviceOption);
            command.AddOption(accessOption);
            command.AddOption(additionalImportDirsOption);
            command.AddArgument(filesArgument);

            command.SetHandler <string, Services, Access, string?, string[], InvocationContext, IConsole>(
                async(project, services, access, additionalImportDirs, files, context, console) =>
            {
                try
                {
                    var command = new AddFileCommand(console, project, httpClient);
                    await command.AddFileAsync(services, access, additionalImportDirs, files);

                    context.ExitCode = 0;
                }
                catch (CLIToolException e)
                {
                    console.LogError(e);

                    context.ExitCode = -1;
                }
            }, projectOption, serviceOption, accessOption, additionalImportDirsOption, filesArgument);

            return(command);
        }
예제 #2
0
        public static Command Create()
        {
            var command = new Command(
                name: "add-file",
                description: CoreStrings.AddFileCommandDescription);

            command.AddArgument(new Argument <string[]>
            {
                Name        = "files",
                Description = CoreStrings.AddFileCommandArgumentDescription,
                Arity       = ArgumentArity.OneOrMore
            });

            command.AddOption(CommonOptions.ProjectOption());
            command.AddOption(CommonOptions.ServiceOption());
            command.AddOption(CommonOptions.AdditionalImportDirsOption());
            command.AddOption(CommonOptions.AccessOption());

            command.Handler = CommandHandler.Create <IConsole, FileInfo, Services, Access, string, string[]>(
                async(console, project, services, access, additionalImportDirs, files) =>
            {
                try
                {
                    var command = new AddFileCommand(console, project);
                    await command.AddFileAsync(services, access, additionalImportDirs, files);

                    return(0);
                }
                catch (CLIToolException e)
                {
                    console.LogError(e);

                    return(-1);
                }
            });

            return(command);
        }