|
|
|
|
@ -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";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|