Browse Source

Cli: Don't allow --preview project creation with older cli version

pull/13474/head
Yunus Emre Kalkan 4 years ago
parent
commit
1fd214edec
  1. 5
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 14
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs

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

@ -31,9 +31,10 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
ConnectionStringProvider connectionStringProvider, ConnectionStringProvider connectionStringProvider,
SolutionPackageVersionFinder solutionPackageVersionFinder, SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper, ICmdHelper cmdHelper,
CliService cliService,
IInstallLibsService installLibsService, IInstallLibsService installLibsService,
AngularPwaSupportAdder angularPwaSupportAdder) AngularPwaSupportAdder angularPwaSupportAdder)
: base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, angularPwaSupportAdder) : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, cliService, angularPwaSupportAdder)
{ {
TemplateProjectBuilder = templateProjectBuilder; TemplateProjectBuilder = templateProjectBuilder;
TemplateInfoProvider = templateInfoProvider; TemplateInfoProvider = templateInfoProvider;
@ -68,7 +69,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
Logger.LogInformation("Tiered: yes"); Logger.LogInformation("Tiered: yes");
} }
var projectArgs = GetProjectBuildArgs(commandLineArgs, template, projectName); var projectArgs = await GetProjectBuildArgsAsync(commandLineArgs, template, projectName);
var result = await TemplateProjectBuilder.BuildAsync( var result = await TemplateProjectBuilder.BuildAsync(
projectArgs projectArgs

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

@ -25,6 +25,7 @@ public abstract class ProjectCreationCommandBase
public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; } public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
public IInstallLibsService InstallLibsService { get; } public IInstallLibsService InstallLibsService { get; }
public CliService CliService { get; }
public AngularPwaSupportAdder AngularPwaSupportAdder { get; } public AngularPwaSupportAdder AngularPwaSupportAdder { get; }
public ILogger<NewCommand> Logger { get; set; } public ILogger<NewCommand> Logger { get; set; }
@ -33,18 +34,20 @@ public abstract class ProjectCreationCommandBase
SolutionPackageVersionFinder solutionPackageVersionFinder, SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper, ICmdHelper cmdHelper,
IInstallLibsService installLibsService, IInstallLibsService installLibsService,
CliService cliService,
AngularPwaSupportAdder angularPwaSupportAdder) AngularPwaSupportAdder angularPwaSupportAdder)
{ {
ConnectionStringProvider = connectionStringProvider; ConnectionStringProvider = connectionStringProvider;
SolutionPackageVersionFinder = solutionPackageVersionFinder; SolutionPackageVersionFinder = solutionPackageVersionFinder;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
InstallLibsService = installLibsService; InstallLibsService = installLibsService;
CliService = cliService;
AngularPwaSupportAdder = angularPwaSupportAdder; AngularPwaSupportAdder = angularPwaSupportAdder;
Logger = NullLogger<NewCommand>.Instance; Logger = NullLogger<NewCommand>.Instance;
} }
protected ProjectBuildArgs GetProjectBuildArgs(CommandLineArgs commandLineArgs, string template, string projectName) protected async Task<ProjectBuildArgs> GetProjectBuildArgsAsync(CommandLineArgs commandLineArgs, string template, string projectName)
{ {
var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long); var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long);
@ -57,6 +60,15 @@ public abstract class ProjectCreationCommandBase
if (preview) if (preview)
{ {
Logger.LogInformation("Preview: yes"); Logger.LogInformation("Preview: yes");
var cliVersion = await CliService.GetCurrentCliVersionAsync(typeof(CliService).Assembly);
if (!cliVersion.IsPrerelease)
{
throw new CliUsageException(
"You can only create a new preview solution with preview CLI version." +
" Update your ABP CLI to the preview version.");
}
} }
var pwa = commandLineArgs.Options.ContainsKey(Options.ProgressiveWebApp.Short); var pwa = commandLineArgs.Options.ContainsKey(Options.ProgressiveWebApp.Short);

Loading…
Cancel
Save