|
1 | 1 | /// Export different types of modules in different subfolders in UDL (plain) format
|
2 | 2 | /// test.dfi -> /dfi/test.dfi
|
3 |
| -/// testpkg.test.cls -> /cls/testpkg/test.cls |
| 3 | +/// testpkg.test.cls -> /testpkg/test.cls |
4 | 4 | Class dev.code [ Abstract ]
|
5 | 5 | {
|
6 | 6 |
|
7 |
| -Parameter version = "1.2.0"; |
| 7 | +Parameter version = "1.4.0"; |
8 | 8 |
|
9 | 9 | /// export all available code
|
10 | 10 | ClassMethod export(mask = "", generated = 0, system = 0, percent = 0, mapped = 0, dfi = 0)
|
@@ -98,12 +98,49 @@ ClassMethod export(mask = "", generated = 0, system = 0, percent = 0, mapped = 0
|
98 | 98 | set rs=""
|
99 | 99 |
|
100 | 100 | #;DeepSee artefacts
|
| 101 | + do ..exportCubes() |
101 | 102 | do ..exportDeepSeeArtefacts()
|
102 | 103 | write !,!, "#; Exported to ", ..workdir()
|
103 | 104 |
|
104 | 105 | return $$$OK
|
105 | 106 | }
|
106 | 107 |
|
| 108 | +/// Export Cube Classes |
| 109 | +ClassMethod exportCubes() As %Status |
| 110 | +{ |
| 111 | + #define export(%code, %file) set sc = $system.OBJ.ExportUDL(%code, %file,"/diffexport") ##continue |
| 112 | + write:sc "Ok" do:'sc $system.OBJ.DisplayError(sc) |
| 113 | + #define isMapped(%code) ##class(%RoutineMgr).IsMapped( %code ) |
| 114 | + #define isPercented(%code) ("%" = $e(%code)) |
| 115 | + #define isCube(%code) $classmethod(%code,"%Extends","%DeepSee.CubeDefinition") |
| 116 | + |
| 117 | + #define log write !, code, " -> ", $piece(filename,..workdir(),2), " " |
| 118 | + |
| 119 | + Set sc = $$$OK |
| 120 | + #; classes |
| 121 | + set rs = ##class(%ResultSet).%New("%Dictionary.ClassDefinition:Summary") |
| 122 | + if rs.Execute() |
| 123 | + { |
| 124 | + while rs.%Next() |
| 125 | + { |
| 126 | + set code = rs.Name _ ".cls", isSystem = rs.System |
| 127 | + if isSystem continue |
| 128 | + if $$$isPercented( code ) continue |
| 129 | + if $$$isMapped( code ) continue |
| 130 | + |
| 131 | + if '($classmethod(rs.Name,"%Extends","%DeepSee.CubeDefinition")) continue |
| 132 | + set filename = ..filename( code ) |
| 133 | + do ..mkdir( filename ) |
| 134 | + $$$log |
| 135 | + $$$export( code, filename ) |
| 136 | + } |
| 137 | + set rs="" |
| 138 | + } |
| 139 | + |
| 140 | + |
| 141 | + Return sc |
| 142 | +} |
| 143 | + |
107 | 144 | /// import all from workdir
|
108 | 145 | ClassMethod import(filemask = "*.xml;*.cls;*.mac;*.int;*.inc;*.dfi", qspec = "cku-d", ByRef err = "", recurse = 1, ByRef loaded = "", verbose = 1) As %Status
|
109 | 146 | {
|
@@ -382,8 +419,8 @@ ClassMethod filename(code)
|
382 | 419 |
|
383 | 420 | set ext = $p( code, ".", * ), ext = $zcvt( ext, "l" )
|
384 | 421 | #; for each type - different directory
|
385 |
| - |
386 |
| - set:ext'="" wd = ##class(%File).NormalizeDirectory( ext, wd ) |
| 422 | + #; except cls,int,inc,mac |
| 423 | + if ext'="cls",ext'="mac",ext'="int",ext'="inc",ext'="" set wd = ##class(%File).NormalizeDirectory( ext, wd ) |
387 | 424 |
|
388 | 425 | #; directory must exist before any call (%File).NormalizeFilename( , wd)
|
389 | 426 | if '##class(%File).DirectoryExists( wd )
|
@@ -560,4 +597,3 @@ ClassMethod checkMasks(name As %String, masks As %String) As %Boolean
|
560 | 597 | }
|
561 | 598 |
|
562 | 599 | }
|
563 |
| - |
|
0 commit comments