mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 03:25:23 +08:00
Modifying the "package create" command to handle new Nuget's filename convention
- e.g., Orchard.Module.Orchard.Blogs.0.8.0.nupkg - Creating packages in Orchard.Web/Packages to prevent them from being added to /bin (common behavior when running orchard.exe) --HG-- branch : nuget
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
using System.IO;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Web.Hosting;
|
||||||
using Orchard.Commands;
|
using Orchard.Commands;
|
||||||
using Orchard.Environment.Extensions;
|
using Orchard.Environment.Extensions;
|
||||||
using Orchard.Packaging.Services;
|
using Orchard.Packaging.Services;
|
||||||
@@ -7,18 +9,17 @@ using Orchard.UI.Notify;
|
|||||||
namespace Orchard.Packaging.Commands {
|
namespace Orchard.Packaging.Commands {
|
||||||
[OrchardFeature("Orchard.Packaging")]
|
[OrchardFeature("Orchard.Packaging")]
|
||||||
public class PackagingCommands : DefaultOrchardCommandHandler {
|
public class PackagingCommands : DefaultOrchardCommandHandler {
|
||||||
|
private static readonly string OrchardWebProj = HostingEnvironment.MapPath("~/Orchard.Web.csproj");
|
||||||
|
private const string PackagePath = "Packages";
|
||||||
|
|
||||||
private readonly IPackageManager _packageManager;
|
private readonly IPackageManager _packageManager;
|
||||||
|
|
||||||
public PackagingCommands(IPackageManager packageManager) {
|
public PackagingCommands(IPackageManager packageManager) {
|
||||||
_packageManager = packageManager;
|
_packageManager = packageManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
[OrchardSwitch]
|
[CommandHelp("package create <moduleName>\r\n\t" + "Create a package for the module <moduleName>. The default filename is Orchard.<extension>.<moduleName>.<moduleVersion>.nupkg.")]
|
||||||
public string Filename { get; set; }
|
|
||||||
|
|
||||||
[CommandHelp("package create <moduleName>\r\n\t" + "Create a package for the module <moduleName>. The default filename is <moduleName>-<moduleVersion>.zip.")]
|
|
||||||
[CommandName("package create")]
|
[CommandName("package create")]
|
||||||
[OrchardSwitches("Filename")]
|
|
||||||
public void CreatePackage(string moduleName) {
|
public void CreatePackage(string moduleName) {
|
||||||
var packageData = _packageManager.Harvest(moduleName);
|
var packageData = _packageManager.Harvest(moduleName);
|
||||||
if (packageData == null) {
|
if (packageData == null) {
|
||||||
@@ -26,7 +27,16 @@ namespace Orchard.Packaging.Commands {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var filename = string.Format("{0}-{1}.zip", packageData.ExtensionName, packageData.ExtensionVersion);
|
// append "Orchard.[ExtensionType]" to prevent conflicts with other packages (e.g, TinyMce, jQuery, ...)
|
||||||
|
var filename = string.Format("Orchard.{0}.{1}.{2}.nupkg", packageData.ExtensionType, packageData.ExtensionName, packageData.ExtensionVersion);
|
||||||
|
var packagePath = Path.Combine(Directory.GetParent(OrchardWebProj).FullName, PackagePath);
|
||||||
|
|
||||||
|
if(!Directory.Exists(packagePath)) {
|
||||||
|
Directory.CreateDirectory(packagePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// packages are created in a specific folder otherwise they are in /bin, which crashed the current shell
|
||||||
|
filename = Path.Combine(packagePath, filename);
|
||||||
|
|
||||||
using ( var stream = File.Create(filename) ) {
|
using ( var stream = File.Create(filename) ) {
|
||||||
packageData.PackageStream.CopyTo(stream);
|
packageData.PackageStream.CopyTo(stream);
|
||||||
|
@@ -2,6 +2,7 @@ using System.IO;
|
|||||||
|
|
||||||
namespace Orchard.Packaging.Services {
|
namespace Orchard.Packaging.Services {
|
||||||
public class PackageData {
|
public class PackageData {
|
||||||
|
public string ExtensionType { get; set; }
|
||||||
public string ExtensionName { get; set; }
|
public string ExtensionName { get; set; }
|
||||||
public string ExtensionVersion { get; set; }
|
public string ExtensionVersion { get; set; }
|
||||||
|
|
||||||
|
@@ -33,6 +33,7 @@ namespace Orchard.Packaging.Services {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new PackageData {
|
return new PackageData {
|
||||||
|
ExtensionType = extensionDescriptor.ExtensionType,
|
||||||
ExtensionName = extensionDescriptor.Name,
|
ExtensionName = extensionDescriptor.Name,
|
||||||
ExtensionVersion = extensionDescriptor.Version,
|
ExtensionVersion = extensionDescriptor.Version,
|
||||||
PackageStream = _packageBuilder.BuildPackage(extensionDescriptor),
|
PackageStream = _packageBuilder.BuildPackage(extensionDescriptor),
|
||||||
|
Reference in New Issue
Block a user