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,21 @@ 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
-
76
+
77
77
s rs = ##class (%ResultSet ).%New ( " %Library.File:FileSet" )
78
78
for { $$$next(i ,dir ) Q :i =" " Q :dir =" "
79
-
79
+
80
80
s sc = rs .Execute ( dir , filemask ) Q :'sc
81
-
81
+
82
82
while rs .Next () {
83
83
84
84
s filename = rs .Name
85
85
86
86
if $$$isDirectory(rs .Type ) {
87
- if recurse $$$push(filename )
88
- continue
87
+ if recurse $$$push(filename )
88
+ continue
89
89
}
90
90
91
91
s ext = $p ( filename , " ." , * )
@@ -100,7 +100,7 @@ ClassMethod import(filemask = "*.*", qspec = "cku-d", ByRef err = "", recurse =
100
100
101
101
}
102
102
}
103
-
103
+
104
104
Q sc
105
105
}
106
106
@@ -109,7 +109,7 @@ ClassMethod workdir(workdir)
109
109
{
110
110
s gln = ..gln () s :$d (workdir ) @gln = workdir
111
111
///zu(12) namespace directory by default
112
- #define nsdir $zu (12 ," " )
112
+ #define nsdir $zu (12 ," " )
113
113
Q $g (@gln , $$$nsdir)
114
114
}
115
115
@@ -125,31 +125,39 @@ ClassMethod gln() [ CodeMode = expression, Private ]
125
125
ClassMethod filename (code )
126
126
{
127
127
#define log (%dir,%sc ) w !, " mkdir " , %dir , " " , sc
128
-
129
- s wd = ..workdir ()
130
-
128
+
129
+ s wd = ..workdir ()
130
+
131
131
if '##class (%File ).DirectoryExists ( wd ) {
132
132
s sc = ##class (%File ).CreateDirectoryChain ( wd )
133
133
$$$log(wd ,sc )
134
134
}
135
-
135
+
136
136
s ext = $p ( code , " ." , * ), ext = $zcvt ( ext , " l" )
137
137
#; for each type - different directory
138
-
139
- s :ext '=" " wd = ##class (%File ).NormalizeDirectory ( ext , wd )
138
+
139
+ s :ext '=" " wd = ##class (%File ).NormalizeDirectory ( ext , wd )
140
140
if '##class (%File ).DirectoryExists ( wd ) {
141
141
s sc = ##class (%File ).CreateDirectoryChain ( wd )
142
142
$$$log(wd ,sc )
143
143
}
144
-
144
+
145
145
s filename = ##class (%File ).NormalizeFilename ( code , wd )
146
+ #; for *.cls Package.Subpackage.ClassName.cls -> Folder/Subfolder/ClassName.cls
147
+ if ext =" cls" {
148
+ set foldercode =$piece (code ," ." ,*-2 )
149
+ set foldercode =$translate (foldercode ," ." ," /" )
150
+ set foldercode =foldercode _" /" _$piece (code ," ." ,*-1 ,*)
151
+ set filename =##class (%File ).NormalizeFilename ( foldercode , wd )
152
+ }
153
+
146
154
#; for *.dfi filename can contain folders
147
- if ext = " dfi" {
148
- s path = ##class (%File ).GetDirectory ( filename )
155
+ if ext = ( " dfi" )!( " cls " ) {
156
+ s path = ##class (%File ).GetDirectory ( filename )
149
157
if '##class (%File ).DirectoryExists ( path ) {
150
- s sc = ##class (%File ).CreateDirectoryChain ( path )
158
+ s sc = ##class (%File ).CreateDirectoryChain ( path )
151
159
$$$log(path ,sc )
152
- }
160
+ }
153
161
}
154
162
Q filename
155
163
}
@@ -161,62 +169,62 @@ ClassMethod importUpdated(filemask = "*.*", qspec = "cku-d", ByRef err = "", rec
161
169
#define next (%i,%dir ) s %i =$o ( dirs ( " " ), 1 , %dir ) k :%i '=" " dirs (%i )
162
170
#define isDirectory (%type ) ( %type = " D" )
163
171
#define log w !, filename , " -> " , codename , " " , +sc
164
-
172
+
165
173
s sc = 1 , dirs = " " , dir = ..workdir () $$$push(dir )
166
-
174
+
167
175
s rs = ##class (%ResultSet ).%New ( " %Library.File:FileSet" )
168
176
for { $$$next(i ,dir ) Q :i =" " Q :dir =" "
169
-
177
+
170
178
s sc = rs .Execute ( dir , filemask ) Q :'sc
171
-
179
+
172
180
while rs .Next () {
173
-
174
- s filename = rs .Name
175
-
181
+
182
+ s filename = rs .Name
183
+
176
184
if $$$isDirectory( rs .Type ) {
177
- if ( recurse ) $$$push(filename ) ;push directory
178
- continue
185
+ if ( recurse ) $$$push(filename ) ;push directory
186
+ continue
179
187
}
180
-
188
+
181
189
s filets = rs .DateModified
182
- s codename = ..codename ( filename , .ext )
190
+ s codename = ..codename ( filename , .ext )
183
191
s codets = ..codets ( codename , ext )
184
-
192
+
185
193
if ( filets '] codets ) continue
186
-
194
+
187
195
/*
188
196
w !, " ************* import ************** "
189
197
w !, "file: ", filets
190
198
w !, "code: ", codets
191
199
*/
192
-
200
+
193
201
if ext = " dfi" {
194
-
202
+
195
203
s sc = ##class (%DeepSee.UserLibrary.Utils ).%Import ( filename , 1 , 0 , 0 , " " , .loaded )
196
-
204
+
197
205
} else {
198
-
206
+
199
207
#; drop existing code before import ( purge DateModified )
200
208
s :codets '=" " sc = ##class (%RoutineMgr ).Delete ( codename )
201
209
s sc = $system .OBJ .Load ( filename , qspec , .err , .loaded )
202
-
210
+
203
211
}
204
-
212
+
205
213
if verbose $$$log
206
214
}
207
215
}
208
216
Q sc
209
217
}
210
218
211
- /// presumable codename
219
+ /// presumable codename
212
220
ClassMethod codename (filename , ByRef ext = " " )
213
221
{
214
222
s ext = $p ( filename , " ." , * ), ext = $zcvt ( ext , " l" )
215
223
s path = ##class (%File ).NormalizeDirectory ( ext , ..workdir () )
216
224
s codename = $p ( filename , path , 2 )
217
225
if ext = " dfi" {
218
226
s fullname = $tr ( codename , " \" , " /" ) ; return fullname for dfi in $$$IsWINDOWS
219
- Q $p ( fullname , " ." , 1 , *-1 ) ;remove extension
227
+ Q $p ( fullname , " ." , 1 , *-1 ) ;remove extension
220
228
}
221
229
Q codename
222
230
}
@@ -227,9 +235,9 @@ ClassMethod codets(codename, ext)
227
235
if ext '=" dfi" {
228
236
s ts = ##class (%RoutineMgr ).TS ( codename )
229
237
} else {
230
- s sql =" Select timeModified From %DeepSee_UserLibrary.FolderItem Where fullname = ?"
238
+ s sql =" Select timeModified From %DeepSee_UserLibrary.FolderItem Where fullname = ?"
231
239
s rs = ##class (%SQL.Statement ).%ExecDirect ( , sql , codename )
232
- if rs .%Next () {
240
+ if rs .%Next () {
233
241
s utcts = rs .timeModified
234
242
s utch = $zdth ( utcts , 3 , , 3 ) ;utc internal format
235
243
s loch = $zdth ( utch , -3 ) ; utc to local timezone
@@ -240,4 +248,3 @@ ClassMethod codets(codename, ext)
240
248
}
241
249
242
250
}
243
-
0 commit comments