private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule, string computerName) { try { bool containedErrors = false; if (cimModule.MainManifest == null) { return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } string temporaryModuleManifestPath = Path.Combine(RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName, base.Context.CurrentRunspace), Path.GetFileName(cimModule.ModuleName)); Hashtable originalManifest = null; if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable(cimModule.MainManifest, temporaryModuleManifestPath, this, ref containedErrors); if (originalManifest == null) { return(this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } } if (!containedErrors) { originalManifest = RemoteDiscoveryHelper.RewriteManifest(originalManifest); } Hashtable localizedData = originalManifest; PSModuleInfo moduleInfoForRemoteModuleWithoutManifest = null; if (!containedErrors) { ModuleCmdletBase.ImportModuleOptions options = new ModuleCmdletBase.ImportModuleOptions(); moduleInfoForRemoteModuleWithoutManifest = base.LoadModuleManifest(temporaryModuleManifestPath, null, originalManifest, localizedData, 0, base.BaseMinimumVersion, base.BaseRequiredVersion, ref options, ref containedErrors); } if ((moduleInfoForRemoteModuleWithoutManifest == null) || containedErrors) { moduleInfoForRemoteModuleWithoutManifest = this.GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } return(moduleInfoForRemoteModuleWithoutManifest); } catch (Exception exception) { ErrorRecord errorRecordForProcessingOfCimModule = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(exception, cimModule.ModuleName); base.WriteError(errorRecordForProcessingOfCimModule); return(null); } }
private PSModuleInfo ConvertCimModuleInfoToPSModuleInfo(RemoteDiscoveryHelper.CimModule cimModule, string computerName) { try { bool containedErrors = false; if (cimModule.MainManifest == null) { return(GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } string temporaryModuleManifestPath = Path.Combine( RemoteDiscoveryHelper.GetModulePath(cimModule.ModuleName, null, computerName, this.Context.CurrentRunspace), Path.GetFileName(cimModule.ModuleName)); Hashtable mainData = null; if (!containedErrors) { mainData = RemoteDiscoveryHelper.ConvertCimModuleFileToManifestHashtable( cimModule.MainManifest, temporaryModuleManifestPath, this, ref containedErrors); if (mainData == null) { return(GetModuleInfoForRemoteModuleWithoutManifest(cimModule)); } } if (!containedErrors) { mainData = RemoteDiscoveryHelper.RewriteManifest(mainData); } Hashtable localizedData = mainData; // TODO/FIXME - this needs full path support from the provider PSModuleInfo moduleInfo = null; if (!containedErrors) { ImportModuleOptions throwAwayOptions = new ImportModuleOptions(); moduleInfo = LoadModuleManifest( temporaryModuleManifestPath, null, // scriptInfo mainData, localizedData, 0 /* - don't write errors, don't load elements, don't return null on first error */, this.BaseMinimumVersion, this.BaseMaximumVersion, this.BaseRequiredVersion, this.BaseGuid, ref throwAwayOptions, ref containedErrors); } if ((moduleInfo == null) || containedErrors) { moduleInfo = GetModuleInfoForRemoteModuleWithoutManifest(cimModule); } return(moduleInfo); } catch (Exception e) { ErrorRecord errorRecord = RemoteDiscoveryHelper.GetErrorRecordForProcessingOfCimModule(e, cimModule.ModuleName); this.WriteError(errorRecord); return(null); } }