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 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";
}
}
}
}
Loading…
Cancel
Save