|
|
|
@ -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 <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("Options:"); |
|
|
|
Logger.LogWarning("-t|--template <template-name>"); |
|
|
|
Logger.LogWarning("-d|--database-provider <database-provider>"); |
|
|
|
Logger.LogWarning("-o|--output-folder <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"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |