From cce3b8e2baca2b9b08295b75025ff9c1620af034 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 6 May 2019 14:13:59 +0800 Subject: [PATCH] The New command adds the output folder parameters. --- .../Abp/Cli/Commands/NewProjectCommand.cs | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewProjectCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewProjectCommand.cs index 94a9181eb2..3f274d69cb 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewProjectCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewProjectCommand.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using System.Threading.Tasks; using Ionic.Zip; using Microsoft.Extensions.Logging; @@ -30,16 +30,18 @@ namespace Volo.Abp.Cli.Commands Logger.LogWarning("Project name is missing."); Logger.LogWarning(""); Logger.LogWarning("Usage:"); - Logger.LogWarning(" abp new [-t|--template] [-d|--database-provider]"); + Logger.LogWarning(" abp new [-t|--template] [-d|--database-provider] [-o|--output-folder]"); Logger.LogWarning(""); Logger.LogWarning("Options:"); Logger.LogWarning("-t|--template "); Logger.LogWarning("-d|--database-provider "); + Logger.LogWarning("-o|--output-folder "); Logger.LogWarning(""); Logger.LogWarning("Examples:"); Logger.LogWarning(" abp new Acme.BookStore"); Logger.LogWarning(" abp new Acme.BookStore -t mvc-module"); Logger.LogWarning(" abp new Acme.BookStore -t mvc -d mongodb"); + Logger.LogWarning(" abp new Acme.BookStore -t mvc -d mongodb -o d:\\project"); return; } @@ -54,15 +56,31 @@ namespace Volo.Abp.Cli.Commands ) ); + var outputFolder = commandLineArgs.Options.GetOrNull(Options.OutputFolder.Short, Options.OutputFolder.Long); + if (outputFolder != null) + { + if (!Directory.Exists(outputFolder)) + { + Directory.CreateDirectory(outputFolder); + } + + outputFolder = Path.GetFullPath(outputFolder); + } + else + { + outputFolder = Directory.GetCurrentDirectory(); + } + using (var templateFileStream = new MemoryStream(result.ZipContent)) { using (var templateZipFile = ZipFile.Read(templateFileStream)) { - templateZipFile.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.Throw); + templateZipFile.ExtractAll(outputFolder, ExtractExistingFileAction.Throw); } } Logger.LogInformation($"Successfully created the project '{commandLineArgs.Target}'"); + Logger.LogInformation($"The output folder is: '{outputFolder}'"); } protected virtual DatabaseProvider GetDatabaseProviderOrNull(CommandLineArgs commandLineArgs) @@ -92,6 +110,12 @@ namespace Volo.Abp.Cli.Commands public const string Short = "d"; public const string Long = "database-provider"; } + + public static class OutputFolder + { + public const string Short = "o"; + public const string Long = "output-folder"; + } } } } \ No newline at end of file