public PackagingResult Execute(string packagePath, string targetDirectory, int phase, string[] parameters, TextWriter output) { Log.AppendLine($"CALL: PackageManager({packagePath}, {targetDirectory}, {phase}, parameters:string[{parameters.Length}])"); var result = new PackagingResult(); var resultAcc = new ObjectAccessor(result); resultAcc.SetProperty("Successful", false); return(result); }
public FileInfo CreateThemePackage(ThemeManifest manifest) { var result = new PackagingResult { ExtensionType = "Theme", PackageName = manifest.ThemeName, PackageVersion = manifest.Version, PackageStream = _packageBuilder.BuildPackage(manifest) }; return(SavePackageFile(result)); }
public FileInfo CreatePluginPackage(PluginDescriptor descriptor) { var result = new PackagingResult { ExtensionType = "Plugin", PackageName = descriptor.FolderName, PackageVersion = descriptor.Version.ToString(), PackageStream = _packageBuilder.BuildPackage(descriptor) }; return(SavePackageFile(result)); }
private static int ExecutePhase(string packagePath, string targetDirectory, int phase, string[] parameters, string logFilePath, bool help) { var sandboxPath = Path.Combine(Path.GetDirectoryName(packagePath), PackageManager.SANDBOXDIRECTORYNAME); var preloaded = SenseNet.ContentRepository.Storage.TypeHandler.LoadAssembliesFrom(sandboxPath); var packageCustomizationPath = Path.Combine(packagePath, "PackageCustomization"); if (Directory.Exists(packageCustomizationPath)) { Console.WriteLine("Loading package customizations:"); var loaded = SenseNet.ContentRepository.Storage.TypeHandler.LoadAssembliesFrom(packageCustomizationPath); foreach (var item in loaded) { Console.Write(" "); Console.WriteLine(item); } } if (help) { LogAssemblies(); Logger.LogMessage(Environment.NewLine + PackageManager.GetHelp()); var sb = new StringBuilder(); return(0); } PackagingResult result = null; try { result = PackageManager.Execute(packagePath, targetDirectory, phase, parameters, Console.Out); } catch (Exception e) { Logger.LogException(e); } // result: 0: successful with no errors, 1: need restart, -1: error if (result == null || !result.Successful) { return(-1); } if (result.NeedRestart) { return(1 + Logger.Errors * 2); } return(Logger.Errors * 2); }
private FileInfo SavePackageFile(PackagingResult result) { var fileName = string.Format("{0}{1}.{2}.nupkg", PackagingUtils.GetExtensionPrefix(result.ExtensionType), result.PackageName, result.PackageVersion); if (!Directory.Exists(_outputPath)) { Directory.CreateDirectory(_outputPath); } fileName = Path.Combine(_outputPath, fileName); using (var stream = File.Create(fileName)) { result.PackageStream.CopyTo(stream); } var fileInfo = new FileInfo(fileName); return(fileInfo); }
internal static int ExecutePhase(string packagePath, string targetDirectory, int phase, string[] parameters, string logFilePath, bool help, bool schema) { Logger.LogTitle(ToolTitle); var typeResolver = TypeResolverWrapper.Instance; // preload all assemblies from the sandbox folder so that we have every dll in memory typeResolver.LoadAssembliesFrom(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); var packageCustomizationPath = Path.Combine(packagePath, "PackageCustomization"); if (Disk.DirectoryExists(packageCustomizationPath)) { Output.WriteLine("Loading package customizations:"); var loaded = typeResolver.LoadAssembliesFrom(packageCustomizationPath); foreach (var item in loaded) { Output.Write(" "); Output.WriteLine(item); } } var phaseCustomizationPath = GetPhaseCustomizationPath(packagePath, phase); if (Disk.DirectoryExists(phaseCustomizationPath)) { Output.WriteLine($"Loading phase-{phase + 1} customizations:"); var loaded = typeResolver.LoadAssembliesFrom(phaseCustomizationPath); foreach (var item in loaded) { Output.Write(" "); Output.WriteLine(item); } } if (help) { LogAssemblies(); Logger.LogMessage(Environment.NewLine + PackageManagerWrapper.Instance.GetHelp()); var sb = new StringBuilder(); return(0); } if (schema) { var xsd = PackageManagerWrapper.Instance.GetXmlSchema(); Logger.LogMessage(Environment.NewLine + xsd); var xsdPath = Path.GetFullPath(packagePath + @"\..\bin\SenseNetPackage.xsd"); using (var writer = new StreamWriter(xsdPath, false)) writer.Write(xsd); Logger.LogMessage("XSD is written to " + xsdPath); return(0); } PackagingResult result = null; try { result = PackageManagerWrapper.Instance.Execute(packagePath, targetDirectory, phase, parameters, Output); } catch (Exception e) { Logger.LogException(e); } finally { // Stop this background thread so that the app could exit correctly. This is a // workaround for cases when the Repository was not started during execution, // but the clusterchannel started because one of the components needed it. DistributedApplication.ClusterChannel.ShutDownAsync(CancellationToken.None).GetAwaiter().GetResult(); } // result: // -2: error, // -1: terminated, // 0: successful with no errors, // 1: need restart, // 2: (not used) // 3: 1 error // 4: 1 error and restart // n: (n-1)/2 errors plus 1 if restart if (result == null) { return(-2); } if (!result.Successful) { return(result.Terminated ? -1 : -2); } if (result.NeedRestart) { return(1 + Logger.Errors * 2); } return(Logger.Errors * 2); }
private static int ExecutePhase(string packagePath, string targetDirectory, int phase, string[] parameters, string logFilePath, bool help, bool schema) { Logger.LogTitle(ToolTitle); // preload all assemblies from the sandbox folder so that we have every dll in memory TypeResolver.LoadAssembliesFrom(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); var packageCustomizationPath = Path.Combine(packagePath, "PackageCustomization"); if (Directory.Exists(packageCustomizationPath)) { Console.WriteLine("Loading package customizations:"); var loaded = TypeResolver.LoadAssembliesFrom(packageCustomizationPath); foreach (var item in loaded) { Console.Write(" "); Console.WriteLine(item); } } if (help) { LogAssemblies(); Logger.LogMessage(Environment.NewLine + PackageManager.GetHelp()); var sb = new StringBuilder(); return(0); } if (schema) { var xsd = PackageManager.GetXmlSchema(); Logger.LogMessage(Environment.NewLine + xsd); var xsdPath = Path.GetFullPath(packagePath + @"\..\bin\SenseNetPackage.xsd"); using (var writer = new StreamWriter(xsdPath, false)) writer.Write(xsd); Logger.LogMessage("XSD is written to " + xsdPath); return(0); } PackagingResult result = null; try { result = PackageManager.Execute(packagePath, targetDirectory, phase, parameters, Console.Out); } catch (Exception e) { Logger.LogException(e); } // result: // -2: error, // -1: terminated, // 0: successful with no errors, // 1: need restart, // 2: (not used) // 3: 1 error // 4: 1 error and restart // n: (n-1)/2 errors plus 1 if restart if (result == null) { return(-2); } if (!result.Successful) { return(result.Terminated ? -1 : -2); } if (result.NeedRestart) { return(1 + Logger.Errors * 2); } return(Logger.Errors * 2); }