Browse Source

Merge pull request #12202 from abpframework/liangshiwei/cli

Enhance ABP CLI
pull/12210/head
maliming 5 years ago
committed by GitHub
parent
commit
e5ac5abb38
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 15
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs
  3. 13
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  4. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs

14
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -10,6 +10,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.LIbs;
using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.ProjectModification;
using Volo.Abp.Cli.Utils; using Volo.Abp.Cli.Utils;
@ -21,22 +22,19 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
{ {
public const string Name = "new"; public const string Name = "new";
public ILogger<NewCommand> Logger { get; set; }
protected TemplateProjectBuilder TemplateProjectBuilder { get; } protected TemplateProjectBuilder TemplateProjectBuilder { get; }
public ITemplateInfoProvider TemplateInfoProvider { get; } public ITemplateInfoProvider TemplateInfoProvider { get; }
public NewCommand(TemplateProjectBuilder templateProjectBuilder public NewCommand(TemplateProjectBuilder templateProjectBuilder
, ITemplateInfoProvider templateInfoProvider, , ITemplateInfoProvider templateInfoProvider,
ConnectionStringProvider connectionStringProvider, ConnectionStringProvider connectionStringProvider,
SolutionPackageVersionFinder solutionPackageVersionFinder, SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper) ICmdHelper cmdHelper,
: base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper) IInstallLibsService installLibsService)
: base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService)
{ {
TemplateProjectBuilder = templateProjectBuilder; TemplateProjectBuilder = templateProjectBuilder;
TemplateInfoProvider = templateInfoProvider; TemplateInfoProvider = templateInfoProvider;
Logger = NullLogger<NewCommand>.Instance;
} }
public async Task ExecuteAsync(CommandLineArgs commandLineArgs) public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
@ -79,7 +77,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'");
RunGraphBuildForMicroserviceServiceTemplate(projectArgs); RunGraphBuildForMicroserviceServiceTemplate(projectArgs);
RunInstallLibsForWebTemplate(projectArgs); await RunInstallLibsForWebTemplateAsync(projectArgs);
OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs);
} }

15
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs

@ -1,6 +1,7 @@
using System; using System;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using ICSharpCode.SharpZipLib.Core; using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Zip;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -8,6 +9,7 @@ using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.ProjectModification;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.LIbs;
using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.App;
@ -22,13 +24,19 @@ public abstract class ProjectCreationCommandBase
public ConnectionStringProvider ConnectionStringProvider { get; } public ConnectionStringProvider ConnectionStringProvider { get; }
public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; } public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
public IInstallLibsService InstallLibsService { get; }
public ILogger<NewCommand> Logger { get; set; } public ILogger<NewCommand> Logger { get; set; }
public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, SolutionPackageVersionFinder solutionPackageVersionFinder, ICmdHelper cmdHelper) public ProjectCreationCommandBase(
ConnectionStringProvider connectionStringProvider,
SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper,
IInstallLibsService installLibsService)
{ {
ConnectionStringProvider = connectionStringProvider; ConnectionStringProvider = connectionStringProvider;
SolutionPackageVersionFinder = solutionPackageVersionFinder; SolutionPackageVersionFinder = solutionPackageVersionFinder;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
InstallLibsService = installLibsService;
Logger = NullLogger<NewCommand>.Instance; Logger = NullLogger<NewCommand>.Instance;
} }
@ -313,14 +321,15 @@ public abstract class ProjectCreationCommandBase
} }
} }
protected virtual void RunInstallLibsForWebTemplate(ProjectBuildArgs projectArgs) protected async Task RunInstallLibsForWebTemplateAsync(ProjectBuildArgs projectArgs)
{ {
if (AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || if (AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) ||
ModuleTemplateBase.IsModuleTemplate(projectArgs.TemplateName) || ModuleTemplateBase.IsModuleTemplate(projectArgs.TemplateName) ||
AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName) ||
MicroserviceServiceTemplateBase.IsMicroserviceTemplate(projectArgs.TemplateName)) MicroserviceServiceTemplateBase.IsMicroserviceTemplate(projectArgs.TemplateName))
{ {
CmdHelper.RunCmd("abp install-libs", projectArgs.OutputFolder); Logger.LogInformation("Installing client-side packages...");
await InstallLibsService.InstallLibsAsync(projectArgs.OutputFolder);
} }
} }

13
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

@ -14,6 +14,7 @@ using NuGet.Versioning;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.Http; using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.LIbs;
using Volo.Abp.Cli.Utils; using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.IO; using Volo.Abp.IO;
@ -25,7 +26,7 @@ public class NpmPackagesUpdater : ITransientDependency
{ {
public ILogger<NpmPackagesUpdater> Logger { get; set; } public ILogger<NpmPackagesUpdater> Logger { get; set; }
protected ICancellationTokenProvider CancellationTokenProvider { get; } protected ICancellationTokenProvider CancellationTokenProvider { get; }
public InstallLibsCommand InstallLibsCommand { get; } public IInstallLibsService InstallLibsService { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
private readonly PackageJsonFileFinder _packageJsonFileFinder; private readonly PackageJsonFileFinder _packageJsonFileFinder;
@ -38,13 +39,13 @@ public class NpmPackagesUpdater : ITransientDependency
NpmGlobalPackagesChecker npmGlobalPackagesChecker, NpmGlobalPackagesChecker npmGlobalPackagesChecker,
ICancellationTokenProvider cancellationTokenProvider, ICancellationTokenProvider cancellationTokenProvider,
CliHttpClientFactory cliHttpClientFactory, CliHttpClientFactory cliHttpClientFactory,
InstallLibsCommand ınstallLibsCommand, IInstallLibsService installLibsService,
ICmdHelper cmdHelper) ICmdHelper cmdHelper)
{ {
_packageJsonFileFinder = packageJsonFileFinder; _packageJsonFileFinder = packageJsonFileFinder;
_npmGlobalPackagesChecker = npmGlobalPackagesChecker; _npmGlobalPackagesChecker = npmGlobalPackagesChecker;
CancellationTokenProvider = cancellationTokenProvider; CancellationTokenProvider = cancellationTokenProvider;
InstallLibsCommand = ınstallLibsCommand; InstallLibsService = installLibsService;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
_cliHttpClientFactory = cliHttpClientFactory; _cliHttpClientFactory = cliHttpClientFactory;
Logger = NullLogger<NpmPackagesUpdater>.Instance; Logger = NullLogger<NpmPackagesUpdater>.Instance;
@ -306,10 +307,8 @@ public class NpmPackagesUpdater : ITransientDependency
protected virtual async Task RunInstallLibsAsync(string fileDirectory) protected virtual async Task RunInstallLibsAsync(string fileDirectory)
{ {
var args = new CommandLineArgs("install-libs"); Logger.LogInformation("Installing client-side packages...");
args.Options.Add(InstallLibsCommand.Options.WorkingDirectory.Short, fileDirectory); await InstallLibsService.InstallLibsAsync(fileDirectory);
await InstallLibsCommand.ExecuteAsync(args);
} }
protected virtual void RunYarn(string fileDirectory) protected virtual void RunYarn(string fileDirectory)

12
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs

@ -12,6 +12,7 @@ using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.Http; using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.LIbs;
using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.Utils; using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
@ -26,7 +27,7 @@ public class ProjectNpmPackageAdder : ITransientDependency
public SourceCodeDownloadService SourceCodeDownloadService { get; } public SourceCodeDownloadService SourceCodeDownloadService { get; }
public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public AngularSourceCodeAdder AngularSourceCodeAdder { get; }
public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; }
public InstallLibsCommand InstallLibsCommand { get; } public IInstallLibsService InstallLibsService { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
private readonly CliHttpClientFactory _cliHttpClientFactory; private readonly CliHttpClientFactory _cliHttpClientFactory;
public ILogger<ProjectNpmPackageAdder> Logger { get; set; } public ILogger<ProjectNpmPackageAdder> Logger { get; set; }
@ -36,14 +37,14 @@ public class ProjectNpmPackageAdder : ITransientDependency
SourceCodeDownloadService sourceCodeDownloadService, SourceCodeDownloadService sourceCodeDownloadService,
AngularSourceCodeAdder angularSourceCodeAdder, AngularSourceCodeAdder angularSourceCodeAdder,
IRemoteServiceExceptionHandler remoteServiceExceptionHandler, IRemoteServiceExceptionHandler remoteServiceExceptionHandler,
InstallLibsCommand ınstallLibsCommand, IInstallLibsService installLibsService,
ICmdHelper cmdHelper) ICmdHelper cmdHelper)
{ {
JsonSerializer = jsonSerializer; JsonSerializer = jsonSerializer;
SourceCodeDownloadService = sourceCodeDownloadService; SourceCodeDownloadService = sourceCodeDownloadService;
AngularSourceCodeAdder = angularSourceCodeAdder; AngularSourceCodeAdder = angularSourceCodeAdder;
RemoteServiceExceptionHandler = remoteServiceExceptionHandler; RemoteServiceExceptionHandler = remoteServiceExceptionHandler;
InstallLibsCommand = ınstallLibsCommand; InstallLibsService = installLibsService;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
_cliHttpClientFactory = cliHttpClientFactory; _cliHttpClientFactory = cliHttpClientFactory;
Logger = NullLogger<ProjectNpmPackageAdder>.Instance; Logger = NullLogger<ProjectNpmPackageAdder>.Instance;
@ -142,9 +143,8 @@ public class ProjectNpmPackageAdder : ITransientDependency
return; return;
} }
await InstallLibsCommand.ExecuteAsync( Logger.LogInformation("Installing client-side packages...");
new CommandLineArgs("install-libs") await InstallLibsService.InstallLibsAsync(directory);
);
} }
} }

Loading…
Cancel
Save