|
1
|
DEFINE INPUT PARAMETER basepath AS CHARACTER NO-UNDO EXTENT.
|
|
2
|
DEFINE INPUT PARAMETER outpath AS CHARACTER NO-UNDO.
|
|
3
|
DEFINE INPUT PARAMETER postfix AS CHARACTER NO-UNDO.
|
|
4
|
DEFINE VARIABLE inputFile AS CHARACTER NO-UNDO.
|
|
5
|
DEFINE VARIABLE outputFile AS CHARACTER NO-UNDO.
|
|
6
|
DEFINE VARIABLE filename AS CHARACTER FORMAT "x(64)".
|
|
7
|
DEFINE VARIABLE stat AS INTEGER NO-UNDO.
|
|
8
|
DEFINE VARIABLE idx AS INTEGER NO-UNDO.
|
|
9
|
DEFINE VARIABLE inputExtent AS CHARACTER NO-UNDO EXTENT 1.
|
|
10
|
|
|
11
|
/* Create output directory */
|
|
12
|
OS-CREATE-DIR VALUE(outpath).
|
|
13
|
stat = OS-ERROR.
|
|
14
|
IF stat NE 0 THEN
|
|
15
|
MESSAGE "Directory not created. System Error #" stat.
|
|
16
|
|
|
17
|
|
|
18
|
REPEAT idx = 1 TO EXTENT(basepath):
|
|
19
|
FILE-INFO:FILE-NAME = basepath[idx].
|
|
20
|
IF FILE-INFO:FILE-TYPE = ? THEN DO:
|
|
21
|
/* Path not found */
|
|
22
|
MESSAGE "Not found".
|
|
23
|
END.
|
|
24
|
ELSE IF FILE-INFO:FILE-TYPE BEGINS 'D' THEN DO:
|
|
25
|
/* This is a directory */
|
|
26
|
basepath[idx] = basepath[idx] + "/".
|
|
27
|
INPUT FROM OS-DIR(basepath[idx]).
|
|
28
|
REPEAT:
|
|
29
|
IMPORT filename.
|
|
30
|
inputExtent[1] = basepath[idx] + filename.
|
|
31
|
IF filename MATCHES "*.p" OR
|
|
32
|
filename MATCHES "*.w" OR
|
|
33
|
filename MATCHES "*.cls" THEN
|
|
34
|
DO:
|
|
35
|
RUN tests/preproc/generate_preproc_output.p(inputExtent, outpath, postfix).
|
|
36
|
END.
|
|
37
|
END.
|
|
38
|
INPUT CLOSE.
|
|
39
|
END.
|
|
40
|
ELSE IF FILE-INFO:FILE-TYPE BEGINS 'F' THEN DO:
|
|
41
|
/* This is a filename */
|
|
42
|
RUN compile-file.
|
|
43
|
END.
|
|
44
|
ELSE DO:
|
|
45
|
MESSAGE "Not supported".
|
|
46
|
END.
|
|
47
|
END.
|
|
48
|
|
|
49
|
PROCEDURE compile-file:
|
|
50
|
DEFINE VARIABLE filename AS CHAR.
|
|
51
|
filename = FILE-INFO:FILE-NAME.
|
|
52
|
DEF VAR numEntries AS INTEGER NO-UNDO.
|
|
53
|
numEntries = NUM-ENTRIES(filename, "/").
|
|
54
|
|
|
55
|
IF numEntries GT 0 THEN DO:
|
|
56
|
filename = ENTRY(numEntries, filename, "/").
|
|
57
|
END.
|
|
58
|
|
|
59
|
inputFile = FILE-INFO:FULL-PATHNAME.
|
|
60
|
outputFile = outpath + "/" + filename + "." + postfix.
|
|
61
|
COMPILE VALUE(inputFile) SAVE PREPROCESS VALUE(outputFile) NO-ERROR.
|
|
62
|
END.
|