2
2
Class sc .all .sub Extends sc .all
3
3
{
4
4
5
- /// Translate ( codename ) into ( filename )
5
+ /// test.dfi -> /dfi/test.dfi
6
+ /// test.cls -> /cls/test.cls
7
+ /// etc
6
8
ClassMethod filename (code )
7
9
{
8
10
s ext = $p ( code , " ." , * ), ext = $zcvt ( ext , " l" )
@@ -19,5 +21,88 @@ ClassMethod filename(code)
19
21
Q filename
20
22
}
21
23
24
+ /// import from workdir all files with ts newer than code ts in db
25
+ ClassMethod importUpdated (qspec = " cku-d" , ByRef err = " " , recurse = 1 , ByRef loaded = " " , verbose = 1 ) As %Status
26
+ {
27
+ #define push (%dir ) s dirs ( $i ( dirs ) ) = %dir
28
+ #define next (%i,%dir ) s %i =$o ( dirs ( " " ), 1 , %dir ) k :%i '=" " dirs (%i )
29
+ #define isDirectory (%type ) ( %type = " D" )
30
+ #define log w !, filename , " -> " , codename , " " , +sc
31
+
32
+ s sc = 1 , dirs = " " , dir = ..workdir () $$$push(dir )
33
+
34
+ s rs = ##class (%ResultSet ).%New ( " %Library.File:FileSet" )
35
+ for { $$$next(i ,dir ) Q :i =" " Q :dir =" "
36
+
37
+ s sc = rs .Execute ( dir , " *.*" ) Q :'sc
38
+
39
+ while rs .Next () {
40
+
41
+ s filename = rs .Name
42
+
43
+ if $$$isDirectory( rs .Type ) {
44
+ if ( recurse ) $$$push(filename ) ;push directory
45
+ continue
46
+ }
47
+
48
+ s filets = rs .DateModified
49
+ s codename = ..codename ( filename , .ext )
50
+ s codets = ..codets ( codename , ext )
51
+
52
+ if ( filets '] codets ) continue
53
+
54
+ /*
55
+ w !, " ************* import ************** "
56
+ w !, "file: ", filets
57
+ w !, "code: ", codets
58
+ */
59
+
60
+ if ext = " dfi" {
61
+
62
+ s sc = ##class (%DeepSee.UserLibrary.Utils ).%Import ( filename , 1 , 0 , 0 , " " , .loaded )
63
+
64
+ } else {
65
+
66
+ s sc = $system .OBJ .Load ( filename , qspec , .err , .loaded )
67
+
68
+ }
69
+
70
+ if verbose $$$log
71
+ }
72
+ }
73
+ Q sc
74
+ }
75
+
76
+ /// presumable codename
77
+ ClassMethod codename (filename , ByRef ext = " " )
78
+ {
79
+ s ext = $p ( filename , " ." , * ), ext = $zcvt ( ext , " l" )
80
+ s path = ##class (%File ).NormalizeDirectory ( ext , ..workdir () )
81
+ s codename = $p ( filename , path , 2 )
82
+ if ext = " dfi" {
83
+ s fullname = $tr ( codename , " \" , " /" ) ; return fullname for dfi in $$$IsWINDOWS
84
+ Q $p ( fullname , " ." , 1 , *-1 ) ;remove extension
85
+ }
86
+ Q codename
87
+ }
88
+
89
+ ClassMethod codets (codename , ext )
90
+ {
91
+ s ts = " "
92
+ if ext '=" dfi" {
93
+ s ts = ##class (%RoutineMgr ).TS ( codename )
94
+ } else {
95
+ s sql =" Select timeModified From %DeepSee_UserLibrary.FolderItem Where fullname = ?"
96
+ s rs = ##class (%SQL.Statement ).%ExecDirect ( , sql , codename )
97
+ if rs .%Next () {
98
+ s utcts = rs .timeModified
99
+ s utch = $zdth ( utcts , 3 , , 3 ) ;utc internal format
100
+ s loch = $zdth ( utch , -3 ) ; utc to local timezone
101
+ s ts = $zdt ( loch , 3 , ,0 ) ; local timestamp*/
102
+ }
103
+ }
104
+ Q $p ( ts , " ." ) ;remove ms
105
+ }
106
+
22
107
}
23
108
0 commit comments