@@ -38,6 +38,11 @@ ClassMethod TempFolder() As %String
3838 if context .IsInGitEnabledPackage {
3939 quit context .Package .Root
4040 }
41+ quit ..DefaultTempFolder ()
42+ }
43+
44+ ClassMethod DefaultTempFolder () As %String
45+ {
4146 quit $get (@..#Storage@(" settings" ," namespaceTemp" ),..DefaultTemp ()_$translate ($znspace ," %" )_..#Slash)
4247}
4348
@@ -1089,8 +1094,17 @@ ClassMethod ListItemsInFiles(ByRef itemList, ByRef err) As %Status
10891094 set mappedFilePath = ##class (%File ).NormalizeFilename (mappedRelativePath , ..TempFolder ())
10901095
10911096 if (##class (%File ).DirectoryExists (mappedFilePath )){
1092- set res = $system .OBJ .ImportDir (mappedFilePath ,," -d" ,.err ,1 , .tempItemList , $$$DoNotLoad)
1093- merge itemList = tempItemList
1097+ if ##class (%Library.RoutineMgr ).UserType (" foo." _mappingFileType ) {
1098+ set fileSpec = " *." _$zcvt (mappingFileType ," L" )_" ;*." _$zconvert (mappingFileType ," U" )
1099+ set files = ##class (%Library.File ).FileSetFunc (mappedFilePath ,fileSpec )
1100+ while files .%Next () {
1101+ // Assumes flat file structure
1102+ set itemList (files .ItemName ) = " "
1103+ }
1104+ } else {
1105+ set res = $system .OBJ .ImportDir (mappedFilePath ,," -d" ,.err ,1 , .tempItemList , $$$DoNotLoad)
1106+ merge itemList = tempItemList
1107+ }
10941108 }
10951109
10961110 set mappingCoverage = $order ($$$SourceMapping(mappingFileType , mappingCoverage ))
@@ -1124,6 +1138,9 @@ ClassMethod ListItemsInFiles(ByRef itemList, ByRef err) As %Status
11241138
11251139ClassMethod ImportRoutines (force As %Boolean = 0 ) As %Status
11261140{
1141+ set refContext = ##class (SourceControl.Git.PackageManagerContext ).%Get ()
1142+ set refPackage = refContext .Package
1143+
11271144 write !, " ==import start=="
11281145
11291146 #dim err , itemList
@@ -1138,10 +1155,13 @@ ClassMethod ImportRoutines(force As %Boolean = 0) As %Status
11381155 for {
11391156 set internalName = $order (itemList (internalName ))
11401157 quit :internalName =" "
1141- if '..IsInSourceControl (internalName ) {
1142- continue
1158+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (internalName )
1159+ continue :context .Package '=refPackage
1160+ if ..IsInSourceControl (internalName ) {
1161+ set sc = ..ImportItem (internalName , force )
1162+ } else {
1163+ set sc = ..AddToServerSideSourceControl (internalName )
11431164 }
1144- #dim sc as %Status = ..ImportItem (internalName , force )
11451165 if $$$ISERR(sc ) {
11461166 set ec = $$$ADDSC(ec , sc )
11471167 }
@@ -1152,22 +1172,29 @@ ClassMethod ImportRoutines(force As %Boolean = 0) As %Status
11521172 for {
11531173 set item = $order (@..#Storage@(" TSH" , item ))
11541174 quit :item =" "
1155-
1156- if '##class (%File ).Exists (..FullExternalName (item )) {
1175+
1176+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (item )
1177+ continue :context .Package '=refPackage
1178+
1179+ set fullExternalName = ..FullExternalName (item )
1180+ if '##class (%File ).Exists (fullExternalName ) {
1181+ write !,fullExternalName ," does not exist - deleting " ,item
11571182 #dim type as %String = ..Type (item )
11581183 #dim name as %String = ..NameWithoutExtension (item )
11591184 #dim deleted as %Boolean = 1
11601185 if type = " prj" {
11611186 set ec = $$$ADDSC(ec , $system .OBJ .DeleteProject (name ))
11621187 }elseif type = " cls" {
11631188 set ec = $$$ADDSC(ec , $system .OBJ .Delete (item ))
1164- }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" , " dfi " ), type ) > 0 {
1189+ }elseif $listfind ($listbuild (" mac" ," int" ," inc" ," bas" ," mvb" ," mvi" ), type ) > 0 {
11651190 set ec = $$$ADDSC(ec , ##class (%Routine ).Delete (item ))
11661191 }elseif type = " csp" {
11671192 #dim filename = $system .CSP .GetFileName (item )
11681193 if ##class (%File ).Exists (filename ) && '##class (%File ).Delete (filename ) {
11691194 set ec = $$$ADDSC(ec , ..MakeError (" Error while removing " _item ))
11701195 }
1196+ }elseif ##class (%Library.RoutineMgr ).UserType (item ) {
1197+ set ec = $$$ADDSC(ec , ##class (%Library.RoutineMgr ).Delete (item ))
11711198 } else {
11721199 set deleted = 0
11731200 }
@@ -1287,11 +1314,16 @@ ClassMethod ImportAll(force As %Boolean = 0) As %Status
12871314
12881315ClassMethod ExportRoutines (force As %Boolean = 0 ) As %Status
12891316{
1317+ set refContext = ##class (SourceControl.Git.PackageManagerContext ).%Get ()
1318+ set refPackage = refContext .Package
1319+
12901320 #dim item as %String = " "
12911321 #dim ec as %Status = $$$OK
12921322 for {
12931323 set item = $order (@..#Storage@(" items" ,item ))
12941324 quit :item =" "
1325+ set context = ##class (SourceControl.Git.PackageManagerContext ).ForInternalName (item )
1326+ continue :context .Package '=refPackage
12951327 set ec = ..ExportItem (item , 1 , force )
12961328 quit :'ec
12971329 }
@@ -1398,6 +1430,7 @@ ClassMethod GitStatus(ByRef files, IncludeAllFiles = 0)
13981430 set internalName = ..NameToInternalName (externalName )
13991431 if (internalName '= " " ) {
14001432 set files (internalName ) = $listbuild (operation , externalName )
1433+ set @..#Storage@(" items" ,..NormalizeInternalName (internalName )) = " "
14011434 } elseif ((IncludeAllFiles ) && (externalName '= " " )) {
14021435 set externalName = $TRANSLATE (externalName , " \" , " /" )
14031436 set files ($I (files )) = $listbuild (operation , externalName )
@@ -1810,4 +1843,3 @@ ClassMethod BuildCEInstallationPackage(ByRef destination As %String) As %Status
18101843}
18111844
18121845}
1813-
0 commit comments