The New command adds the output folder parameters.

pull/1093/head
maliming 7 years ago
parent 3fc8f26e35
commit cce3b8e2ba

@ -1,4 +1,4 @@
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Ionic.Zip; using Ionic.Zip;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -30,16 +30,18 @@ namespace Volo.Abp.Cli.Commands
Logger.LogWarning("Project name is missing."); Logger.LogWarning("Project name is missing.");
Logger.LogWarning(""); Logger.LogWarning("");
Logger.LogWarning("Usage:"); Logger.LogWarning("Usage:");
Logger.LogWarning(" abp new <project-name> [-t|--template] [-d|--database-provider]"); Logger.LogWarning(" abp new <project-name> [-t|--template] [-d|--database-provider] [-o|--output-folder]");
Logger.LogWarning(""); Logger.LogWarning("");
Logger.LogWarning("Options:"); Logger.LogWarning("Options:");
Logger.LogWarning("-t|--template <template-name>"); Logger.LogWarning("-t|--template <template-name>");
Logger.LogWarning("-d|--database-provider <database-provider>"); Logger.LogWarning("-d|--database-provider <database-provider>");
Logger.LogWarning("-o|--output-folder <output-folder>");
Logger.LogWarning(""); Logger.LogWarning("");
Logger.LogWarning("Examples:"); Logger.LogWarning("Examples:");
Logger.LogWarning(" abp new Acme.BookStore"); Logger.LogWarning(" abp new Acme.BookStore");
Logger.LogWarning(" abp new Acme.BookStore -t mvc-module"); 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");
Logger.LogWarning(" abp new Acme.BookStore -t mvc -d mongodb -o d:\\project");
return; 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 templateFileStream = new MemoryStream(result.ZipContent))
{ {
using (var templateZipFile = ZipFile.Read(templateFileStream)) 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($"Successfully created the project '{commandLineArgs.Target}'");
Logger.LogInformation($"The output folder is: '{outputFolder}'");
} }
protected virtual DatabaseProvider GetDatabaseProviderOrNull(CommandLineArgs commandLineArgs) protected virtual DatabaseProvider GetDatabaseProviderOrNull(CommandLineArgs commandLineArgs)
@ -92,6 +110,12 @@ namespace Volo.Abp.Cli.Commands
public const string Short = "d"; public const string Short = "d";
public const string Long = "database-provider"; public const string Long = "database-provider";
} }
public static class OutputFolder
{
public const string Short = "o";
public const string Long = "output-folder";
}
} }
} }
} }
Loading…
Cancel
Save