Repository navigation
Expand file tree
/
Copy pathPackageManagerContext.cls
More file actions
57 lines (48 loc) · 2.62 KB
/
Copy pathPackageManagerContext.cls
File metadata and controls
57 lines (48 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Class SourceControl.Git.PackageManagerContext Extends SourceControl.Git.Util.Singleton
{
Property InternalName As %String;
Property IsInDefaultPackage As %Boolean [ InitialExpression = 0 ];
Property IsInGitEnabledPackage As %Boolean [ InitialExpression = 0 ];
/// Really is a %ZPM.PackageManager.Developer.Module / %IPM.Storage.Module
Property Package As %RegisteredObject [ InitialExpression = {$$$NULLOREF} ];
/// Really is a %ZPM.PackageManager.Developer.ResourceReference / %IPM.Storage.ResourceReference
Property ResourceReference As %RegisteredObject [ InitialExpression = {$$$NULLOREF} ];
Method InternalNameSet(InternalName As %String = "") As %Status
{
set InternalName = ##class(SourceControl.Git.Utils).NormalizeInternalName(InternalName)
if (InternalName '= i%InternalName) {
set i%InternalName = InternalName
set resourceReference = $$$NULLOREF
if (InternalName = ##class(SourceControl.Git.Settings.Document).#INTERNALNAME) {
// Embedded Git settings document is never in an IPM context
set ..Package = $$$NULLOREF
} elseif $$$comClassDefined("%IPM.ExtensionBase.Utils") {
set ..Package = ##class(%IPM.ExtensionBase.Utils).FindHomeModule(InternalName,,.resourceReference)
} elseif $$$comClassDefined("%ZPM.PackageManager.Developer.Extension.Utils") {
set ..Package = ##class(%ZPM.PackageManager.Developer.Extension.Utils).FindHomeModule(InternalName,,.resourceReference)
} else {
set ..Package = $$$NULLOREF
}
set ..ResourceReference = resourceReference
set ..IsInGitEnabledPackage = $isobject(..Package) && ##class(%Library.File).Exists(##class(%Library.File).NormalizeFilename(".git",..Package.Root))
set ..IsInDefaultPackage = $isobject(..Package) && (##class(%Library.File).NormalizeDirectory(..Package.Root) = ##class(%Library.File).NormalizeDirectory(##class(SourceControl.Git.Utils).DefaultTempFolder()))
}
quit $$$OK
}
ClassMethod ForInternalName(InternalName As %String = "") As SourceControl.Git.PackageManagerContext
{
set instance = ..%Get()
set instance.InternalName = InternalName
set InternalName = instance.InternalName
quit instance
}
Method Dump()
{
write !,"Package manager context: "
write !?4,"InternalName: ",..InternalName
write !?4,"Package: ",$select($isobject(..Package):..Package.Name,1:"<none>")
write !?4,"Resource: ",$select($isobject(..ResourceReference):..ResourceReference.Name,1:"<none>")
write !?4,"Default? ",$select(..IsInDefaultPackage:"Yes",1:"No")
write !?4,"Git-enabled? ",$select(..IsInGitEnabledPackage:"Yes",1:"No"),!
}
}