1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/*
* fix-im.cmd by fuji
*
* !!!!! THE LINE BREAK CODE MUST BE "CR+LF" (0x0Dh + 0x0Ah). !!!!!
*
* Created: 970908
* Revised: 980907
*/
ARG type .
PARSE SOURCE . . this
IF type ==''| ( type<>'REXX' & type <>'EXTPROC' ) THEN DO
SAY 'Please specify fix type.'
SAY '[usage]' FileSpec('Name', this) 'TYPE'
SAY ' TYPE: "REXX" or "ExtProc".'
EXIT 999
END
IF RxFuncQuery('SysLoadFuncs') THEN DO
CALL RxFuncAdd "SysLoadFuncs","REXXUTIL","SysLoadFuncs"
CALL SysLoadFuncs
END
CALL Time('R')
EOL='0a'x
template='OS2\im.cmd'
SAY 'fix type:' type
CALL SysFileTree 'im*.cmd','dum.','FO','*****','-----' /* chmod im*.cmd */
CALL SysFileTree 'im*.','f.','FO' /* IM scripts */
DO i=1 TO f.0
cmdfile=f.i'.cmd'
rb=SysFileDelete(cmdfile)
SAY 'creating' FileSpec('Name',cmdfile) || '..'
func = 'CALL' type || '("' || f.i || '")'
INTERPRET func
END
SAY Time('E')
EXIT
EXTPROC: PROCEDURE EXPOSE cmdfile EOL
PARSE ARG src
head=LineIn(src)
PARSE VAR head '#' '!' prog opt
IF Pos('PERL',Translate(prog)) <>0 THEN opt = '-Sx' opt
CALL CharOut cmdfile, 'extproc' prog opt ||EOL
CALL CharOut cmdfile, head ||EOL
DO WHILE Lines(src)
line=LineIn(src)
IF Pos('###DELETE-ON-INSTALL###', line) ==0 /* not WordPos() */
THEN CALL CharOut cmdfile, line ||EOL
END
CALL CharOut cmdfile /* close handle */
RETURN
REXX: PROCEDURE EXPOSE template cmdfile
'@copy' template cmdfile '>nul 2>&1'
IF rc<>0 THEN CALL LineOut STDERR,,
'FILE ERROR:' template 'NOT found, or' FileSpec('N',cmdfile) 'has been opened by another process EXCLUSIVELY.'
RETURN
/* End of procedure */
|