1
- /// special edition of sc.all.sub for ES without dependencies
1
+ /// special edition of sc.all.sub for ES without dependencies
2
2
/// Export different types of modules in different subfolders
3
3
Class sc .alles [ Abstract ]
4
4
{
5
5
6
6
/// export all available code
7
- ClassMethod export (generated = 0 , system = 0 , percent = 0 , mapped = 1 )
7
+ ClassMethod export (generated = 0 , system = 0 , percent = 0 , mapped = 0 )
8
8
{
9
-
9
+
10
10
#define export (%code, %file ) $system .OBJ .ExportUDL (%code , %file ," /diffexport" )
11
- #define isGenerated (%code ) ##class (%RoutineMgr ).IsGenerated ( %code )
11
+ #define isGenerated (%code ) ##class (%RoutineMgr ).IsGenerated ( %code )
12
12
#define isPercented (%code ) (" %" = $e (%code ))
13
13
#define isMapped (%code ) ##class (%RoutineMgr ).IsMapped ( %code )
14
14
#define log w !, code , " -> " , filename , " "
15
-
16
- #; classes
15
+
16
+ #; classes
17
17
s rs = ##class (%ResultSet ).%New (" %Dictionary.ClassDefinition:Summary" )
18
18
if rs .Execute () {
19
-
19
+
20
20
while rs .%Next (){
21
-
21
+
22
22
s code = rs .Name _ " .cls" , isSystem = rs .System
23
23
if ( 'system && isSystem ) continue
24
24
if ( 'generated && $$$isGenerated( code ) ) continue
@@ -27,29 +27,29 @@ ClassMethod export(generated = 0, system = 0, percent = 0, mapped = 1)
27
27
s filename = ..filename ( code )
28
28
$$$log
29
29
w $$$export( code , filename )
30
-
30
+
31
31
} s rs =" "
32
- }
33
-
32
+ }
33
+
34
34
#; routines
35
35
s rs = ##class (%ResultSet ).%New (" %Routine:RoutineList" )
36
36
if rs .Execute () {
37
-
37
+
38
38
while rs .%Next () {
39
-
39
+
40
40
s code = rs .Name
41
41
if ( 'generated && $$$isGenerated( code ) ) continue
42
42
if ( 'percent && $$$isPercented( code ) ) continue
43
43
if ( 'mapped && $$$isMapped( code ) ) continue
44
-
44
+
45
45
s filename = ..filename ( code )
46
46
$$$log
47
47
w $$$export( code , filename )
48
-
48
+
49
49
} s rs =" "
50
50
}
51
-
52
-
51
+
52
+
53
53
#; dfi
54
54
#define export (%code, %file ) ##class (%DeepSee.UserLibrary.Utils ).%Export ( %code , %file , 0 )
55
55
s sql = " Select fullName as Name From %DeepSee_UserLibrary.FolderItem"
@@ -58,9 +58,9 @@ ClassMethod export(generated = 0, system = 0, percent = 0, mapped = 1)
58
58
s code = rs .Name , filename = ..filename ( code _" .dfi" )
59
59
$$$log
60
60
w $$$export( code , filename )
61
-
61
+
62
62
} s rs =" "
63
-
63
+
64
64
Q
65
65
}
66
66
@@ -71,21 +71,19 @@ ClassMethod import(filemask = "*.*", qspec = "cku-d", ByRef err = "", recurse =
71
71
#define next (%i,%dir ) s %i =$o ( dirs ( " " ), 1 , %dir ) k :%i '=" " dirs (%i )
72
72
#define isDirectory (%type ) ( %type = " D" )
73
73
#define log w !, filename , " " , +sc
74
-
74
+
75
75
s sc = 1 , dirs = " " , dir = ..workdir () $$$push(dir )
76
-
77
- s rs = ##class (%ResultSet ).%New ( " %Library.File:FileSet" )
76
+
78
77
for { $$$next(i ,dir ) Q :i =" " Q :dir =" "
79
-
80
- s sc = rs .Execute ( dir , filemask ) Q :'sc
81
-
82
- while rs .Next () {
83
78
79
+ s rs = ##class (%File ).FileSetFunc ( dir , filemask , , 1 )
80
+
81
+ while rs .%Next () {
84
82
s filename = rs .Name
85
83
86
84
if $$$isDirectory(rs .Type ) {
87
- if recurse $$$push(filename )
88
- continue
85
+ if recurse $$$push(filename )
86
+ continue
89
87
}
90
88
91
89
s ext = $p ( filename , " ." , * )
@@ -100,16 +98,15 @@ ClassMethod import(filemask = "*.*", qspec = "cku-d", ByRef err = "", recurse =
100
98
101
99
}
102
100
}
103
-
101
+
104
102
Q sc
105
103
}
106
-
107
104
/// get or set working directory for export/import source
108
105
ClassMethod workdir (workdir )
109
106
{
110
107
s gln = ..gln () s :$d (workdir ) @gln = workdir
111
108
///zu(12) namespace directory by default
112
- #define nsdir $zu (12 ," " )
109
+ #define nsdir $zu (12 ," " )
113
110
Q $g (@gln , $$$nsdir)
114
111
}
115
112
@@ -125,31 +122,39 @@ ClassMethod gln() [ CodeMode = expression, Private ]
125
122
ClassMethod filename (code )
126
123
{
127
124
#define log (%dir,%sc ) w !, " mkdir " , %dir , " " , sc
128
-
129
- s wd = ..workdir ()
130
-
125
+
126
+ s wd = ..workdir ()
127
+
131
128
if '##class (%File ).DirectoryExists ( wd ) {
132
129
s sc = ##class (%File ).CreateDirectoryChain ( wd )
133
130
$$$log(wd ,sc )
134
131
}
135
-
132
+
136
133
s ext = $p ( code , " ." , * ), ext = $zcvt ( ext , " l" )
137
134
#; for each type - different directory
138
-
139
- s :ext '=" " wd = ##class (%File ).NormalizeDirectory ( ext , wd )
135
+
136
+ s :ext '=" " wd = ##class (%File ).NormalizeDirectory ( ext , wd )
140
137
if '##class (%File ).DirectoryExists ( wd ) {
141
138
s sc = ##class (%File ).CreateDirectoryChain ( wd )
142
139
$$$log(wd ,sc )
143
140
}
144
-
141
+
145
142
s filename = ##class (%File ).NormalizeFilename ( code , wd )
143
+ #; for *.cls Package.Subpackage.ClassName.cls -> Folder/Subfolder/ClassName.cls
144
+ if ext =" cls" {
145
+ set foldercode =$piece (code ," ." ,*-2 )
146
+ set foldercode =$translate (foldercode ," ." ," /" )
147
+ set foldercode =foldercode _" /" _$piece (code ," ." ,*-1 ,*)
148
+ set filename =##class (%File ).NormalizeFilename ( foldercode , wd )
149
+ }
150
+
146
151
#; for *.dfi filename can contain folders
147
- if ext = " dfi" {
148
- s path = ##class (%File ).GetDirectory ( filename )
152
+ if ext = ( " dfi" )!( " cls " ) {
153
+ s path = ##class (%File ).GetDirectory ( filename )
149
154
if '##class (%File ).DirectoryExists ( path ) {
150
- s sc = ##class (%File ).CreateDirectoryChain ( path )
155
+ s sc = ##class (%File ).CreateDirectoryChain ( path )
151
156
$$$log(path ,sc )
152
- }
157
+ }
153
158
}
154
159
Q filename
155
160
}
@@ -161,62 +166,59 @@ ClassMethod importUpdated(filemask = "*.*", qspec = "cku-d", ByRef err = "", rec
161
166
#define next (%i,%dir ) s %i =$o ( dirs ( " " ), 1 , %dir ) k :%i '=" " dirs (%i )
162
167
#define isDirectory (%type ) ( %type = " D" )
163
168
#define log w !, filename , " -> " , codename , " " , +sc
164
-
169
+
165
170
s sc = 1 , dirs = " " , dir = ..workdir () $$$push(dir )
166
-
167
- s rs = ##class (%ResultSet ).%New ( " %Library.File:FileSet" )
168
171
for { $$$next(i ,dir ) Q :i =" " Q :dir =" "
169
-
170
- s sc = rs .Execute ( dir , filemask ) Q :'sc
171
-
172
- while rs .Next () {
173
-
174
- s filename = rs .Name
175
-
172
+
173
+ s rs = ##class (%File ).FileSetFunc ( dir , filemask , , 1 )
174
+
175
+ while rs .%Next () {
176
+ s filename = rs .Name
177
+
176
178
if $$$isDirectory( rs .Type ) {
177
- if ( recurse ) $$$push(filename ) ;push directory
178
- continue
179
+ if ( recurse ) $$$push(filename ) ;push directory
180
+ continue
179
181
}
180
-
182
+
181
183
s filets = rs .DateModified
182
- s codename = ..codename ( filename , .ext )
184
+ s codename = ..codename ( filename , .ext )
183
185
s codets = ..codets ( codename , ext )
184
-
186
+
185
187
if ( filets '] codets ) continue
186
-
188
+
187
189
/*
188
190
w !, " ************* import ************** "
189
191
w !, "file: ", filets
190
192
w !, "code: ", codets
191
193
*/
192
-
194
+
193
195
if ext = " dfi" {
194
-
196
+
195
197
s sc = ##class (%DeepSee.UserLibrary.Utils ).%Import ( filename , 1 , 0 , 0 , " " , .loaded )
196
-
198
+
197
199
} else {
198
-
200
+
199
201
#; drop existing code before import ( purge DateModified )
200
202
s :codets '=" " sc = ##class (%RoutineMgr ).Delete ( codename )
201
203
s sc = $system .OBJ .Load ( filename , qspec , .err , .loaded )
202
-
204
+
203
205
}
204
-
206
+
205
207
if verbose $$$log
206
208
}
207
209
}
208
210
Q sc
209
211
}
210
212
211
- /// presumable codename
213
+ /// presumable codename
212
214
ClassMethod codename (filename , ByRef ext = " " )
213
215
{
214
216
s ext = $p ( filename , " ." , * ), ext = $zcvt ( ext , " l" )
215
217
s path = ##class (%File ).NormalizeDirectory ( ext , ..workdir () )
216
218
s codename = $p ( filename , path , 2 )
217
219
if ext = " dfi" {
218
220
s fullname = $tr ( codename , " \" , " /" ) ; return fullname for dfi in $$$IsWINDOWS
219
- Q $p ( fullname , " ." , 1 , *-1 ) ;remove extension
221
+ Q $p ( fullname , " ." , 1 , *-1 ) ;remove extension
220
222
}
221
223
Q codename
222
224
}
@@ -227,9 +229,9 @@ ClassMethod codets(codename, ext)
227
229
if ext '=" dfi" {
228
230
s ts = ##class (%RoutineMgr ).TS ( codename )
229
231
} else {
230
- s sql =" Select timeModified From %DeepSee_UserLibrary.FolderItem Where fullname = ?"
232
+ s sql =" Select timeModified From %DeepSee_UserLibrary.FolderItem Where fullname = ?"
231
233
s rs = ##class (%SQL.Statement ).%ExecDirect ( , sql , codename )
232
- if rs .%Next () {
234
+ if rs .%Next () {
233
235
s utcts = rs .timeModified
234
236
s utch = $zdth ( utcts , 3 , , 3 ) ;utc internal format
235
237
s loch = $zdth ( utch , -3 ) ; utc to local timezone
@@ -240,4 +242,3 @@ ClassMethod codets(codename, ext)
240
242
}
241
243
242
244
}
243
-
0 commit comments