[796] | 1 | TMGMGRST ;TMG/kst/Custom version of ZTMGRSET and ZOSFGUX ;03/25/06
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;11/01/04
|
---|
| 3 |
|
---|
| 4 | ;"ZTMGRSET(INFO) & ZOSFGUX -- NON-INTERACTIVE versions of standard code.
|
---|
| 5 | ;"=============================================================================
|
---|
| 6 | ;"Kevin Toppenberg, MD 11-04
|
---|
| 7 | ;"
|
---|
| 8 | ;"Purpose:
|
---|
| 9 | ;"
|
---|
| 10 | ;"This library will provide optional NON-INTERACTIVE versions of standard code.
|
---|
| 11 | ;"
|
---|
| 12 | ;"ZTMGRSET(INFO)
|
---|
| 13 | ;"ZOSFGUX
|
---|
| 14 | ;"
|
---|
| 15 | ;"Dependancies:
|
---|
| 16 | ;" TMGQIO
|
---|
| 17 | ;" if TMGDEBUG defined, then requires TMGDEBUG.m
|
---|
| 18 | ;"=============================================================================
|
---|
| 19 |
|
---|
| 20 | ZTMGRSET(INFO) ;SF/RWF,PUG/TOAD - SET UP THE MGR ACCOUNT FOR THE SYSTEM ;10/29/2003 10:19
|
---|
| 21 | ;;8.0+;KERNEL;**34,36,69,94,121,127,136,191,275 (WorldVista Modified)**;JUL 10, 1995;
|
---|
| 22 | ;";;8.0;KERNEL;**34,36,69,94,121,127,136,191,275**;JUL 10, 1995;
|
---|
| 23 | ;"
|
---|
| 24 | ;"K. Toppenberg's changes made November, 2004
|
---|
| 25 | ;"
|
---|
| 26 | ;"Input:
|
---|
| 27 | ;" Note: INFO variable is completely an OPTIONAL parameter.
|
---|
| 28 | ;" If not supplied, interactive mode used
|
---|
| 29 | ;" INFO("SILENT-OUTPUT") -- 1 = output is supressed.
|
---|
| 30 | ;" INFO("SILENT-INPUT") -- 1 = User-interactive input is supressed.
|
---|
| 31 | ;"
|
---|
| 32 | ;" ** if in SILENT-INPUT mode, THEN the following data should be supplied:
|
---|
| 33 | ;" ----------------------
|
---|
| 34 | ;" INFO("CONTINUE") -- Should contain the answer the user would enter for question:
|
---|
| 35 | ;" "THIS MAY NOT BE THE MANAGER UCI... continue anyway?" (i.e. Y or N)
|
---|
| 36 | ;" INFO("OS") -- should have number that would be used to select OS to install (i.e. 1,2,3 etc.)
|
---|
| 37 | ;" INFO("RENAME") -- should have answer to "Rename fileman routines?" (i.e. Y or N)
|
---|
| 38 | ;" INFO("MGR-UCI,VOL") -- should have Managers UCI,VOL
|
---|
| 39 | ;" INFO("SIGNON-UCI,VOL") -- should have Sign-on UCI,VOL
|
---|
| 40 | ;" INFO("VOLUME-SET")--should have: NAME OF VOLUME SET (use same volume set as for 'Production')
|
---|
| 41 | ;" INFO("TEMP") -- should have temp directory for system
|
---|
| 42 | ;"Output:
|
---|
| 43 | ;" If in SILENT-OUTPUT mode, then output that would normally go to the screen, will be routed to this array
|
---|
| 44 | ;" NOTE: INFO SHOULD BE PASSED BY REFERENCE if user wants this information passed back out.
|
---|
| 45 | ;" INFO("TEXT","LINES")=Number of output lines
|
---|
| 46 | ;" INFO("TEXT",1)= 1st output line
|
---|
| 47 | ;" INFO("TEXT",2)= 2nd output line, etc...
|
---|
| 48 | ;
|
---|
| 49 | ;
|
---|
| 50 |
|
---|
| 51 | IF '$data(DBIndent) NEW DBIndent SET DBIndent=0
|
---|
| 52 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"ZTMGRSET^TMGMGRST")
|
---|
| 53 |
|
---|
| 54 | N %D,%S,I,OSMAX,U,X,X1,X2,Y,Z1,Z2,ZTOS,ZTMODE,SCR
|
---|
| 55 | NEW ABORT SET ABORT=0 ;//kt
|
---|
| 56 | NEW SILNTOUT SET SILNTOUT=$get(INFO("SILENT-OUTPUT"),0) ;//kt
|
---|
| 57 | NEW SILENTIN SET SILENTIN=$GET(INFO("SILENT-INPUT"),0) ;//KT
|
---|
| 58 | KILL INFO("TEXT") ;//kt
|
---|
| 59 |
|
---|
| 60 | S ZTMODE=0
|
---|
| 61 | A
|
---|
| 62 | DO OUTP^TMGQIO(SILNTOUT,"!","!","ZTMGRSET","!","Version ",$P($T(ZTMGRSET+1),";",3)," ",$P($T(ZTMGRSET+1),";",5))
|
---|
| 63 | DO OUTP^TMGQIO(SILNTOUT,"!","!","HELLO! I'm here to help initialize the current account.")
|
---|
| 64 |
|
---|
| 65 | ;
|
---|
| 66 | SET Y=0 ;//kt added
|
---|
| 67 | I $D(^%ZOSF("UCI")) X ^%ZOSF("UCI")
|
---|
| 68 | new CurUCI set CurUCI=Y
|
---|
| 69 | I CurUCI'["MG" DO QUIT:(ABORT=1)
|
---|
| 70 | . write !,!,"CurUCI=",CurUCI,!
|
---|
| 71 | . DO OUTP^TMGQIO(SILNTOUT,$C(7),"!","!","THIS MAY NOT BE THE MANAGER UCI.","!")
|
---|
| 72 | . DO OUTP^TMGQIO(SILNTOUT," I think it is ",CurUCI,". Should I continue anyway? N//")
|
---|
| 73 | . DO INP^TMGQIO(.X,SILENTIN,120,$GET(INFO("CONTINUE")))
|
---|
| 74 | . IF "Yy"'[$E(X_"N") DO OUTP^TMGQIO(SILNTOUT,"QUITING.","!") SET ABORT=1 QUIT
|
---|
| 75 | ;
|
---|
| 76 | S ZTOS=$$OS()
|
---|
| 77 | I ZTOS'>0 DO OUTP^TMGQIO(SILNTOUT,"!","Can't determine the OS type. Exiting ZTMGRSET.") QUIT
|
---|
| 78 | ;
|
---|
| 79 | I ZTMODE D QUIT:(ABORT=1)
|
---|
| 80 | . DO OUTP^TMGQIO(SILNTOUT,"!","!","Patch number to load: ")
|
---|
| 81 | . DO INP^TMGQIO(.PCNM,SILENTIN,,$get(INFO("PATCHNUM")))
|
---|
| 82 | . IF (PCNM<1)!(PCNM>999) DO QUIT
|
---|
| 83 | . . DO OUTP^TMGQIO(SILNTOUT,"!","!","Need a Patch number to load. Exiting ZTMGRSET")
|
---|
| 84 | . . SET ABORT=1
|
---|
| 85 | . S SCR="I $P($T(+2^@X),"";"",5)?.E1P1"_$C(34)_PCNM_$C(34)_"1P.E"
|
---|
| 86 | ;
|
---|
| 87 | ;
|
---|
| 88 | K ^%ZOSF("MASTER"),^("SIGNOFF") ;Remove old nodes.
|
---|
| 89 | ;
|
---|
| 90 | DOIT
|
---|
| 91 | DO OUTP^TMGQIO(SILNTOUT,"!","!","I will now rename a group of routines specific to your operating system.","!")
|
---|
| 92 | D @ZTOS
|
---|
| 93 | D ALL
|
---|
| 94 | D GLOBALS:'ZTMODE
|
---|
| 95 | ;
|
---|
| 96 | DO OUTP^TMGQIO(SILNTOUT,"!","!","Completed ZTMGRSET^TMGMGRST.","!","So I guess this is 'Goodbye'.","!","!")
|
---|
| 97 | ;
|
---|
| 98 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"ZTMGRSET^TMGMGRST")
|
---|
| 99 |
|
---|
| 100 | Q
|
---|
| 101 | ;
|
---|
| 102 | ;==============================================================================================
|
---|
| 103 | ;==============================================================================================
|
---|
| 104 | ;
|
---|
| 105 | RELOAD ;Reload any patched routines
|
---|
| 106 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"RELOAD^TMGMGRST")
|
---|
| 107 | N %D,%S,I,OSMAX,U,X,X1,X2,Y,Z1,Z2,ZTOS,ZTMODE,SCR
|
---|
| 108 | S ZTMODE=1 G A
|
---|
| 109 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"OS^TMGMGRST")
|
---|
| 110 | Q
|
---|
| 111 | ;
|
---|
| 112 | ;==============================================================================================
|
---|
| 113 | ;==============================================================================================
|
---|
| 114 | ;
|
---|
| 115 | OS() ;Select the OS
|
---|
| 116 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"OS^TMGMGRST")
|
---|
| 117 | N Y,X1,X
|
---|
| 118 | S U="^",SCR="I 1" F I=1:1:20 S X=$T(@I) Q:X="" S OSMAX=I
|
---|
| 119 | B
|
---|
| 120 | S Y=0,ZTOS=0 I $D(^%ZOSF("OS")) D
|
---|
| 121 | . S X1=$P(^%ZOSF("OS"),U),ZTOS=$$OSNUM
|
---|
| 122 | . DO OUTP^TMGQIO(SILNTOUT,"!","I think you are using ",X1)
|
---|
| 123 | DO OUTP^TMGQIO(SILNTOUT,"!","Which MUMPS system should I install?","!")
|
---|
| 124 | DO OUTP^TMGQIO(SILNTOUT,"!",0," = Abort;")
|
---|
| 125 | F I=1:1:OSMAX DO OUTP^TMGQIO(SILNTOUT,"!",I," = ",$P($T(@I),";",3))
|
---|
| 126 | DO OUTP^TMGQIO(SILNTOUT,"!","System: ")
|
---|
| 127 | IF ZTOS DO OUTP^TMGQIO(SILNTOUT,ZTOS,"//")
|
---|
| 128 | DO INP^TMGQIO(.X,SILENTIN,300,$get(INFO("OS"),U))
|
---|
| 129 | IF X="" S X=ZTOS
|
---|
| 130 | IF (X=U)!(X=0) DO OUTP^TMGQIO(SILNTOUT,"!") SET X=0 GOTO OSQ
|
---|
| 131 | I X<1!(X>OSMAX) DO OUTP^TMGQIO(SILNTOUT,"!","NOT A VALID OS CHOICE") GOTO B
|
---|
| 132 | OSQ
|
---|
| 133 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"OS^TMGMGRST")
|
---|
| 134 | QUIT X
|
---|
| 135 | ;
|
---|
| 136 |
|
---|
| 137 | OSNUM() ;Return the OS number
|
---|
| 138 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"OSNUM^TMGMGRST")
|
---|
| 139 | N I,X1,X2,Y S Y=0,X1=$P($G(^%ZOSF("OS")),"^")
|
---|
| 140 | F I=1:1 S X2=$T(@I) Q:X2="" I X2[X1 S Y=I QUIT
|
---|
| 141 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"OSNUM^TMGMGRST")
|
---|
| 142 | QUIT Y
|
---|
| 143 | ;
|
---|
| 144 |
|
---|
| 145 | ALL
|
---|
| 146 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"ALL^TMGMGRST")
|
---|
| 147 | DO OUTP^TMGQIO(SILNTOUT,"!","!","Now to load routines common to all systems.")
|
---|
| 148 | D TM,ETRAP,DEV,OTHER,FM
|
---|
| 149 | I ZTOS=7!(ZTOS=8) D
|
---|
| 150 | . S ^%ZE="D ^ZE"
|
---|
| 151 | E D ;With ZLoad, ZSave, ZInsert
|
---|
| 152 | . DO OUTP^TMGQIO(SILNTOUT,"!","Installing ^%Z editor")
|
---|
| 153 | . D ^ZTEDIT
|
---|
| 154 | I 'ZTMODE DO
|
---|
| 155 | . DO OUTP^TMGQIO(SILNTOUT,"!","Setting ^%ZIS('C')")
|
---|
| 156 | . K ^%ZIS("C")
|
---|
| 157 | . S ^%ZIS("C")="G ^%ZISC"
|
---|
| 158 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"ALL^TMGMGRST")
|
---|
| 159 | Q
|
---|
| 160 | ;
|
---|
| 161 |
|
---|
| 162 | TM ;Taskman
|
---|
| 163 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"TM^TMGMGRST")
|
---|
| 164 | S %S="ZTLOAD^ZTLOAD1^ZTLOAD2^ZTLOAD3^ZTLOAD4^ZTLOAD5^ZTLOAD6^ZTLOAD7"
|
---|
| 165 | S %D="%ZTLOAD^%ZTLOAD1^%ZTLOAD2^%ZTLOAD3^%ZTLOAD4^%ZTLOAD5^%ZTLOAD6^%ZTLOAD7"
|
---|
| 166 | D MOVE
|
---|
| 167 | S %S="ZTM^ZTM0^ZTM1^ZTM2^ZTM3^ZTM4^ZTM5^ZTM6"
|
---|
| 168 | S %D="%ZTM^%ZTM0^%ZTM1^%ZTM2^%ZTM3^%ZTM4^%ZTM5^%ZTM6"
|
---|
| 169 | D MOVE
|
---|
| 170 | S %S="ZTMS^ZTMS0^ZTMS1^ZTMS2^ZTMS3^ZTMS4^ZTMS5^ZTMS7^ZTMSH"
|
---|
| 171 | ;I ZTOS=7!(ZTOS=8) S $P(%S,U,1)="ZTMSGTM"
|
---|
| 172 | S %D="%ZTMS^%ZTMS0^%ZTMS1^%ZTMS2^%ZTMS3^%ZTMS4^%ZTMS5^%ZTMS7^%ZTMSH"
|
---|
| 173 | D MOVE
|
---|
| 174 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"TM^TMGMGRST")
|
---|
| 175 | Q
|
---|
| 176 |
|
---|
| 177 | FM ;Rename the FileMan routines
|
---|
| 178 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"FM^TMGMGRST")
|
---|
| 179 | I ZTMODE=1 GOTO FMQ ;"Only ask on full install
|
---|
| 180 | DO INP^TMGQIO(.X,SILENTIN,600,$get(INFO("RENAME"),"N"),"!","!","Want to rename the FileMan routines: No//")
|
---|
| 181 | GOTO:"Yy"'[$E(X_"N") FMQ
|
---|
| 182 | S %S="DIDT^DIDTC^DIRCR",%D="%DT^%DTC^%RCR"
|
---|
| 183 | D MOVE
|
---|
| 184 | FMQ
|
---|
| 185 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"FM^TMGMGRST")
|
---|
| 186 | QUIT
|
---|
| 187 | ;
|
---|
| 188 | ;
|
---|
| 189 | ETRAP ;Error Trap
|
---|
| 190 | S %S="ZTER^ZTER1",%D="%ZTER^%ZTER1"
|
---|
| 191 | D MOVE
|
---|
| 192 | Q
|
---|
| 193 | ;
|
---|
| 194 | ;
|
---|
| 195 | OTHER
|
---|
| 196 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"OTHER^TMGMGRST")
|
---|
| 197 | S %S="ZTPP^ZTP1^ZTPTCH^ZTRDEL^ZTMOVE"
|
---|
| 198 | S %D="%ZTPP^%ZTP1^%ZTPTCH^%ZTRDEL^%ZTMOVE"
|
---|
| 199 | D MOVE
|
---|
| 200 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"OTHER^TMGMGRST")
|
---|
| 201 | Q
|
---|
| 202 | ;
|
---|
| 203 | ;
|
---|
| 204 | DEV
|
---|
| 205 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"DEV^TMGMGRST")
|
---|
| 206 | S %S="ZIS^ZIS1^ZIS2^ZIS3^ZIS5^ZIS6^ZIS7^ZISC^ZISP^ZISS^ZISS1^ZISS2^ZISTCP^ZISUTL"
|
---|
| 207 | S %D="%ZIS^%ZIS1^%ZIS2^%ZIS3^%ZIS5^%ZIS6^%ZIS7^%ZISC^%ZISP^%ZISS^%ZISS1^%ZISS2^%ZISTCP^%ZISUTL"
|
---|
| 208 | D MOVE
|
---|
| 209 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"DEV^TMGMGRST")
|
---|
| 210 | Q
|
---|
| 211 | ;
|
---|
| 212 | ;
|
---|
| 213 | RUM ;Build the routines for Capacity Management (CM)
|
---|
| 214 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"RUM^TMGMGRST")
|
---|
| 215 | S %S=""
|
---|
| 216 | I ZTOS=1 S %S="ZOSVKRV^ZOSVKSVE^ZOSVKSVS^ZOSVKSD" ;DSM
|
---|
| 217 | I ZTOS=2 S %S="ZOSVKRM^ZOSVKSME^ZOSVKSMS^ZOSVKSD" ;MSM
|
---|
| 218 | I ZTOS=3 S %S="ZOSVKRO^ZOSVKSOE^ZOSVKSOS^ZOSVKSD" ;OpenM
|
---|
| 219 | I ZTOS=7!(ZTOS=8) S %S="ZOSVKRG^ZOSVKSGE^ZOSVKSGS^ZOSVKSD" ;GT.M
|
---|
| 220 | S %D="%ZOSVKR^%ZOSVKSE^%ZOSVKSS^%ZOSVKSD"
|
---|
| 221 | D MOVE
|
---|
| 222 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"RUM^TMGMGRST")
|
---|
| 223 | Q
|
---|
| 224 | ;
|
---|
| 225 | ;
|
---|
| 226 | ZOSF(X) ;
|
---|
| 227 | ;"Note: KT made change to this function. It used to be that it would be
|
---|
| 228 | ;" called as do ZOSF("FUNCTION"). Now it should be called like this:
|
---|
| 229 | ;" ZOSF("^FUNCTION"). The old fuction would automatically prefix
|
---|
| 230 | ;" all calls with a '^'. I took this out so that calls to functions
|
---|
| 231 | ;" contained in this module are possible.
|
---|
| 232 | ;
|
---|
| 233 | ;"IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"ZOSF^TMGMGRST")
|
---|
| 234 | X SCR
|
---|
| 235 | I $T DO @(X)
|
---|
| 236 | ;"IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"ZOSF^TMGMGRST")
|
---|
| 237 | Q
|
---|
| 238 | ;
|
---|
| 239 | ;
|
---|
| 240 | 1 ;;VAX DSM(V6), VAX DSM(V7)
|
---|
| 241 | S %S="ZOSVVXD^ZTBKCVXD^ZIS4VXD^ZISFVXD^ZISHVXD^XUCIVXD^ZISETVXD"
|
---|
| 242 | D DES,MOVE
|
---|
| 243 | S %S="ZOSV2VXD^ZTMDCL",%D="%ZOSV2^%ZTMDCL"
|
---|
| 244 | D MOVE,RUM,ZOSF("^ZOSFVXD")
|
---|
| 245 | Q
|
---|
| 246 | ;
|
---|
| 247 | ;
|
---|
| 248 | 2 ;;MSM-PC/PLUS, MSM for NT or UNIX
|
---|
| 249 | DO OUTP^TMGQIO(SILNTOUT,"!","- Use autostart to do ZTMB don't resave as STUSER.")
|
---|
| 250 | S %S="ZOSVMSM^ZTBKCMSM^ZIS4MSM^ZISFMSM^ZISHMSM^XUCIMSM^ZISETMSM"
|
---|
| 251 | D DES,MOVE
|
---|
| 252 | S %S="ZOSV2MSM",%D="%ZOSV2"
|
---|
| 253 | D MOVE,RUM,ZOSF("^ZOSFMSM")
|
---|
| 254 | I $$VERSION^%ZOSV(1)["UNIX" S %S="ZISHMSU",%D="%ZISH" D MOVE
|
---|
| 255 | Q
|
---|
| 256 | ;
|
---|
| 257 | ;
|
---|
| 258 | 3 ;;OpenM for NT, Cache/NT, Cache/VMS
|
---|
| 259 | S %S="ZOSVONT^^ZIS4ONT^ZISFONT^ZISHONT^XUCIONT"
|
---|
| 260 | D DES,MOVE
|
---|
| 261 | S %S="ZISTCPS",%D="%ZISTCPS"
|
---|
| 262 | D MOVE,RUM,ZOSF("^ZOSFONT")
|
---|
| 263 | Q
|
---|
| 264 | ;
|
---|
| 265 | ;
|
---|
| 266 | 4 ;;Datatree, DTM-PC, DT-MAX
|
---|
| 267 | S %S="ZOSVDTM^ZTBKCDTM^ZIS4DTM^ZISFDTM^ZISHDTM^XUCIDTM^ZISETDTM"
|
---|
| 268 | D DES,MOVE
|
---|
| 269 | S %S="ZOSV1DTM^ZTMB",%D="%ZOSV1^%ustart"
|
---|
| 270 | D MOVE,ZOSF("^ZOSFDTM")
|
---|
| 271 | Q
|
---|
| 272 | ;
|
---|
| 273 | ;
|
---|
| 274 | 5 ;;MVX,ISM VAX
|
---|
| 275 | S %S="ZOSVMSQ^ZTBKCMSQ^ZIS4MSQ^ZISFMSQ^ZISHMSQ^XUCIMSQ^ZISETMSQ"
|
---|
| 276 | D DES,MOVE
|
---|
| 277 | S %S="ZTMB",%D="ZSTU"
|
---|
| 278 | D MOVE,ZOSF("^ZOSFMSQ")
|
---|
| 279 | Q
|
---|
| 280 | ;
|
---|
| 281 | ;
|
---|
| 282 | 6 ;;ISM (UNIX, Open VMS)
|
---|
| 283 | S %S="ZOSVIS2^^ZIS4IS2^ZISFIS2^ZISHIS2^XUCIIS2^ZISETIS2"
|
---|
| 284 | D DES,MOVE
|
---|
| 285 | S %S="ZTMB",%D="ZSTU"
|
---|
| 286 | D MOVE,ZOSF("^ZOSFIS2")
|
---|
| 287 | Q
|
---|
| 288 | ;
|
---|
| 289 | ;
|
---|
| 290 | 7 ;;GT.M (VMS)
|
---|
| 291 | S %S="ZOSVGTM^ZTBKCGTM^ZIS4GTM^ZISFGTM^ZISHGTM^XUCIGTM^ZISETGTM"
|
---|
| 292 | D DES,MOVE
|
---|
| 293 | S %S="ZOSV2GTM^ZISTCPS",%D="%ZOSV2^%ZISTCPS"
|
---|
| 294 | D MOVE,ZOSF("^ZOSFGTM")
|
---|
| 295 | Q
|
---|
| 296 | ;
|
---|
| 297 | ;
|
---|
| 298 | 8 ;;GT.M (Unix)
|
---|
| 299 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"8^TMGMGRST")
|
---|
| 300 | S %S="ZOSVGUX^ZTBKCGUX^ZIS4GTM^ZISFGTM^ZISHGUX^XUCIGTM^ZISETGUX"
|
---|
| 301 | ;S %S="ZOSVGUX^ZIS4GTM^ZISFGTM^ZISHGUX^XUCIGTM" ;//kt removed 2 files that were missing
|
---|
| 302 | D DES
|
---|
| 303 | D MOVE
|
---|
| 304 | S %S="ZOSV2GTM^ZISTCPS",%D="%ZOSV2^%ZISTCPS"
|
---|
| 305 | D MOVE
|
---|
| 306 | D ZOSF("ZOSFGUX")
|
---|
| 307 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"8^TMGMGRST")
|
---|
| 308 | Q
|
---|
| 309 | ;
|
---|
| 310 | ;
|
---|
| 311 | 10 ;;NOT SUPPORTED
|
---|
| 312 | Q
|
---|
| 313 | ;
|
---|
| 314 | ;
|
---|
| 315 | MOVE ; rename % routines
|
---|
| 316 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"MOVE^TMGMGRST")
|
---|
| 317 | N %,X,Y
|
---|
| 318 | F %=1:1:$L(%D,"^") D
|
---|
| 319 | . S X=$P(%S,U,%) ; from
|
---|
| 320 | . S Y=$P(%D,U,%) ; to
|
---|
| 321 | . DO OUTP^TMGQIO(SILNTOUT,"!","Routine: ",X)
|
---|
| 322 | . NEW INDENT SET INDENT=12-$LENGTH(X)
|
---|
| 323 | . IF INDENT>0 DO OUTP^TMGQIO(SILNTOUT,"?"_INDENT)
|
---|
| 324 | . DO OUTP^TMGQIO(SILNTOUT," --> ",Y)
|
---|
| 325 | . SET INDENT=12-$LENGTH(Y)
|
---|
| 326 | . DO OUTP^TMGQIO(SILNTOUT,"?"_INDENT)
|
---|
| 327 | . Q:(X="")!(Y="")
|
---|
| 328 | . I $TEXT(^@X)="" DO QUIT
|
---|
| 329 | . . DO OUTP^TMGQIO(SILNTOUT,"Missing")
|
---|
| 330 | . X SCR
|
---|
| 331 | . Q:'$T
|
---|
| 332 | . IF $$COPY(X,Y)=0 DO
|
---|
| 333 | . . DO OUTP^TMGQIO(SILNTOUT,"Loaded")
|
---|
| 334 | . . ;"DO OUTP^TMGQIO(SILNTOUT,"?10","Saved as ",Y)
|
---|
| 335 | . ELSE DO
|
---|
| 336 | . . DO OUTP^TMGQIO(SILNTOUT,"Missing (Failed Copy)")
|
---|
| 337 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"MOVE^TMGMGRST")
|
---|
| 338 | QUIT
|
---|
| 339 | ;
|
---|
| 340 | ;
|
---|
| 341 | COPY(FROM,TO) ;
|
---|
| 342 | ;"Purpose: To copy file FROM to TO, getting directory path from $ZRO
|
---|
| 343 | ;"Input: FROM-- a filename without path or '.m' extension
|
---|
| 344 | ;" TO-- a filename without path or '.m' extension
|
---|
| 345 | ;"Result: 0: no error 1=error
|
---|
| 346 | ;
|
---|
| 347 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"COPY^TMGMGRST")
|
---|
| 348 | NEW RESULT SET RESULT=0
|
---|
| 349 | I ZTOS'=7,ZTOS'=8 DO GOTO CPQ
|
---|
| 350 | . X "ZL @FROM ZS @TO"
|
---|
| 351 | ;
|
---|
| 352 | ;"For GT.M below
|
---|
| 353 | ;"--------------
|
---|
| 354 | ;
|
---|
| 355 | N PATH,COPY
|
---|
| 356 | SET FROM=$GET(FROM)_".m"
|
---|
| 357 | SET TO=$TR($GET(TO),"%","_")_".m"
|
---|
| 358 | S PATH=$$GETPATH(.FROM)
|
---|
| 359 | IF PATH="" SET RESULT=1 GOTO CPQ ;"QUIT 1
|
---|
| 360 | IF $EXTRACT(PATH,$LENGTH(PATH))'="/" SET PATH=PATH_"/" ;"Ensure path ends in '/'.
|
---|
| 361 | S COPY=$S(ZTOS=7:"COPY",1:"cp")
|
---|
| 362 | ZSYSTEM COPY_" "_PATH_FROM_" "_PATH_TO
|
---|
| 363 | SET RESULT=$ZSYSTEM
|
---|
| 364 | ;
|
---|
| 365 | ;"IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M2")
|
---|
| 366 | ;
|
---|
| 367 | ;
|
---|
| 368 | CPQ
|
---|
| 369 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"COPY^TMGMGRST")
|
---|
| 370 | QUIT RESULT
|
---|
| 371 | ;
|
---|
| 372 | GETPATH(FILE)
|
---|
| 373 | ;"Note: This function is for GTM, which has a path sequence that may be searched for files.
|
---|
| 374 | ;"Purpose: To take file, and look through file path to determine which path the file
|
---|
| 375 | ;" exists in.
|
---|
| 376 | ;" e.g. if $ZRO="ObjDir1(SourceDir1 SourceDir2) ObjDir2(SourceDir3 SourceDir4)"
|
---|
| 377 | ;" then this function will look in SourceDir's 1..4 to see which one contains
|
---|
| 378 | ;" FILE. Functions will return the appropriate SourceDir
|
---|
| 379 | ;"Input:FILE: the filename to look for, with extension. e.g. "XUP.m"
|
---|
| 380 | ;"Result: Will return the source directory, e.g. /usr/local/OpenVistA/r
|
---|
| 381 | ;
|
---|
| 382 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"GETPATH^TMGMGRST")
|
---|
| 383 | NEW LASTDIR SET LASTDIR=""
|
---|
| 384 | NEW RESULT SET RESULT=""
|
---|
| 385 | NEW PATH SET PATH=""
|
---|
| 386 | ;
|
---|
| 387 | FOR DO QUIT:(RESULT'="")!(LASTDIR="")
|
---|
| 388 | . SET LASTDIR=$$R(LASTDIR)
|
---|
| 389 | . IF LASTDIR="" QUIT
|
---|
| 390 | . ;"DO OUTP^TMGQIO(SILNTOUT,"!","Looking in: ",LASTDIR)
|
---|
| 391 | . SET PATH=LASTDIR
|
---|
| 392 | . IF $$FEXISTS(PATH,FILE) DO
|
---|
| 393 | . . SET RESULT=PATH
|
---|
| 394 | . ELSE DO
|
---|
| 395 | ;
|
---|
| 396 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"GETPATH^TMGMGRST")
|
---|
| 397 | QUIT RESULT
|
---|
| 398 | ;
|
---|
| 399 | ;
|
---|
| 400 | R(LASTDIR) ; routine directory for GT.M
|
---|
| 401 | ;"Notice: The comments here only apply to GTM for Linux (#8).
|
---|
| 402 | ;" I don't have details about GT.M for VMS (#7) so I have not implemented
|
---|
| 403 | ;" cyclic directory evaluation. LASTDIR will be ignored.
|
---|
| 404 | ;"INPUT: LASTDIR - OPTIONAL. This is the directory returned last time fuction called, to
|
---|
| 405 | ;" allow for cycling through all possible directories.
|
---|
| 406 | ;"NOTE: The Syntax for $ZRO is as follows:
|
---|
| 407 | ;" ObjectDir1(SourceDir1) ObjectDir2(SourceDir1 SourceDir2 ...) ObjectDir3() ObjectDir4
|
---|
| 408 | ;" This shows elements are separated by spaces.
|
---|
| 409 | ;" Note that each element starts with the directory for .o files
|
---|
| 410 | ;" Each object directory has an optional (SourceDir) immediately following it
|
---|
| 411 | ;" if (Dir) is present, it contains one or more source directories (separated by spaces)
|
---|
| 412 | ;" if () is empty (i.e. "()") then no source directory is available.
|
---|
| 413 | ;" if (Dir) is absent (i.e. ""), then object dir is used to search for source .m files
|
---|
| 414 | ;"Result: will return the next directory, or "" if none.
|
---|
| 415 | ;"
|
---|
| 416 | ;"IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"R^TMGMGRST")
|
---|
| 417 | NEW RESULT SET RESULT=""
|
---|
| 418 | SET LASTDIR=$GET(LASTDIR)
|
---|
| 419 | ;"if LASTDIR'="" W "Will look for dir AFTER ",LASTDIR,!
|
---|
| 420 | I ZTOS=7 DO
|
---|
| 421 | . SET RESULT=$P($ZRO,",",1)
|
---|
| 422 | IF ZTOS=8 DO ;"GT.M for Linux
|
---|
| 423 | . NEW SECTION
|
---|
| 424 | . NEW PRIORFND SET PRIORFND=0
|
---|
| 425 | . NEW ELEMENT SET ELEMENT=" "
|
---|
| 426 | . NEW DIVPTS ;"Array to hold cut points of $ZRO. Setup in GETSECTN
|
---|
| 427 | . SET DIVPTS("MAX")=0
|
---|
| 428 | . FOR SECTION=1:1 DO QUIT:(RESULT'="")!(SECTION>DIVPTS("MAX")+1)
|
---|
| 429 | . . SET ELEMENT=$$GETSECTN($ZRO,SECTION,.DIVPTS) ;"gets 'ObjDir(SrceDir1 SrceDir2 ...)' etc.
|
---|
| 430 | . . NEW SOURCES SET SOURCES=""
|
---|
| 431 | . . IF (ELEMENT["(")&(ELEMENT[")") DO
|
---|
| 432 | . . . SET SOURCES=$PIECE(ELEMENT,"(",2)
|
---|
| 433 | . . . SET SOURCES=$PIECE(SOURCES,")",1) ;"Get just (..) part -- the source file paths.
|
---|
| 434 | . . ELSE DO
|
---|
| 435 | . . . SET SOURCES=ELEMENT ;"i.e. for ObjectDir [i.e. not ObjectDir()] format.
|
---|
| 436 | . . IF (ELEMENT="")!(SOURCES="") QUIT
|
---|
| 437 | . . NEW PART
|
---|
| 438 | . . NEW PATH SET PATH=" "
|
---|
| 439 | . . FOR PART=1:1 DO QUIT:(RESULT'="")!(PATH="")
|
---|
| 440 | . . . SET PATH=$PIECE(SOURCES," ",PART) ;"returns 'SourceDir1' etc.
|
---|
| 441 | . . . IF PATH="" QUIT
|
---|
| 442 | . . . IF (LASTDIR="")!(PRIORFND) SET RESULT=PATH
|
---|
| 443 | . . . ELSE IF PATH=LASTDIR SET PRIORFND=1
|
---|
| 444 | ;
|
---|
| 445 | ;"OLDER CODE
|
---|
| 446 | ;". NEW temp
|
---|
| 447 | ;". SET temp=$ZRO
|
---|
| 448 | ;". IF $ZRO["(" DO
|
---|
| 449 | ;". SET temp=$P($ZRO,"(",2)
|
---|
| 450 | ;". SET temp=$P(temp,")",1)
|
---|
| 451 | ;". SET RESULT=$P(temp," ",1)_"/"
|
---|
| 452 | ;
|
---|
| 453 | ;"IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"R^TMGMGRST")
|
---|
| 454 |
|
---|
| 455 | QUIT RESULT
|
---|
| 456 | ;
|
---|
| 457 | ;
|
---|
| 458 | GETSECTN(S,NUM,DIVPTS)
|
---|
| 459 | ;"Purpose: To parse a string as follows:
|
---|
| 460 | ;" Expected format of S:
|
---|
| 461 | ;" ObjectDir(SourceDir1 SourceDir2 ...) ObjectDir2(SourceDir1 SourceDir2 ...) ...
|
---|
| 462 | ;" or ObjectDir ObjectDir2(SourceDir1 SourceDir2 ...) ObjectDir() ... etc.
|
---|
| 463 | ;" --- so major sections are divided by spaces, with optional () with optional contents.
|
---|
| 464 | ;" --- there is no nesting of parentheses.
|
---|
| 465 | ;" If NUM=1, return ObjectDir(SourceDir1 SourceDir2 ...)
|
---|
| 466 | ;" If NUM=2, return ObjectDir2(SourceDir1 SourceDir2 ...) etc.
|
---|
| 467 | ;" Notice: Spaces in ObjectDir name are NOT SUPPORTED
|
---|
| 468 | ;" Notice: If more than one space separates sections, will be treated as extra section
|
---|
| 469 | ;"INPUT: S -- string as above
|
---|
| 470 | ;" NUM -- the section number to get (1..n)
|
---|
| 471 | ;" DIVPTS -- [OPTIONAL] PASS BY REFERENCE. If empty, then will be filled
|
---|
| 472 | ;" with the indexes of the dividing spaces
|
---|
| 473 | ;" e.g. DIVPTS(1)=12 DIVPTS(2)=25 DIVPTS(3)=41 DIVPTS("MAX")=3
|
---|
| 474 | ;" If not empty, then this will be used return the requested section.
|
---|
| 475 | ;
|
---|
| 476 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"GETSECTN^TMGMGRST")
|
---|
| 477 | ;
|
---|
| 478 | NEW RESULT SET RESULT=""
|
---|
| 479 | NEW START SET START=0
|
---|
| 480 | NEW END SET END=9999
|
---|
| 481 | NEW PTIDX SET PTIDX=0
|
---|
| 482 | NEW SECTION SET SECTION=0
|
---|
| 483 | NEW MAXIDX
|
---|
| 484 | ;
|
---|
| 485 | SET S=$GET(S)
|
---|
| 486 | SET NUM=$GET(NUM,0)
|
---|
| 487 | ;
|
---|
| 488 | ;Fill Array of division points if empty
|
---|
| 489 | IF $DATA(DIVPTS)'=11 DO
|
---|
| 490 | . NEW INPAREN SET INPAREN=0
|
---|
| 491 | . NEW I,CH
|
---|
| 492 | . FOR I=1:1:$LENGTH(S) DO
|
---|
| 493 | . . SET CH=$EXTRACT(S,I)
|
---|
| 494 | . . IF CH="(" SET INPAREN=1 QUIT
|
---|
| 495 | . . IF CH=")" SET INPAREN=0 QUIT
|
---|
| 496 | . . IF (CH=" ")&(INPAREN=0) DO
|
---|
| 497 | . . . SET PTIDX=PTIDX+1
|
---|
| 498 | . . . SET DIVPTS(PTIDX)=I
|
---|
| 499 | . . . SET DIVPTS("MAX")=PTIDX
|
---|
| 500 | ;
|
---|
| 501 | IF (NUM>0)&(NUM'>DIVPTS("MAX")+1) DO
|
---|
| 502 | . SET PTIDX=$ORDER(DIVPTS(0))
|
---|
| 503 | . ;" 1 2 3 <-- Section #'2
|
---|
| 504 | . ;"xxxxx xxxxxx xxxxx <-- sample S
|
---|
| 505 | . ;" ^ ^ <-- DIVPTS 1 & 2
|
---|
| 506 | . IF NUM>1 SET START=DIVPTS(NUM-1)+1 ;"default START=0
|
---|
| 507 | . IF NUM'>DIVPTS("MAX") SET END=DIVPTS(NUM)-1 ;"default END=9999
|
---|
| 508 | . SET RESULT=$EXTRACT(S,START,END)
|
---|
| 509 | ;
|
---|
| 510 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"GETSECTN^TMGMGRST")
|
---|
| 511 | QUIT RESULT
|
---|
| 512 | ;
|
---|
| 513 | ;
|
---|
| 514 | FEXISTS(PATH,FNAME)
|
---|
| 515 | ;"Purpose: To determine if file FNAME exists on HFS
|
---|
| 516 | ;"Input: PATH: full path up to, but not including, filename. e.g. '/home/user/'
|
---|
| 517 | ;" FNAME: name of the file to open. e.g. 'myfile.txt'
|
---|
| 518 | ;"Result: 1=file exists, 0=file doesn't exist
|
---|
| 519 | ;"IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"FEXISTS^TMGMGRST")
|
---|
| 520 | NEW RESULT SET RESULT=0
|
---|
| 521 | IF ($DATA(PATH)'=0)!($DATA(FNAME)'=0) DO
|
---|
| 522 | . NEW HANDLE SET HANDLE=""
|
---|
| 523 | . DO OPEN^%ZISH(HANDLE,PATH,FNAME,"R") ;"Try to access file
|
---|
| 524 | . IF POP=0 DO ;"POP=0 means file opened, ergo file exists.
|
---|
| 525 | . . SET RESULT=1
|
---|
| 526 | . . DO CLOSE^%ZISH(HANDLE) ;"close file... we don't need it.
|
---|
| 527 | ;"IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"FEXISTS^TMGMGRST")
|
---|
| 528 | QUIT RESULT
|
---|
| 529 | ;
|
---|
| 530 | ;
|
---|
| 531 | SPLITF(IN,PATH,FNAME,NODEDIV)
|
---|
| 532 | ;"Purpose: To take a string with path and filename and
|
---|
| 533 | ;" cleave into a path string and a filename string
|
---|
| 534 | ;"Input: IN: Initial string to parse. e.g. /home/user1/somefile.txt
|
---|
| 535 | ;" PATH & FNAME: vars SHOULD BE PASSED BY REFERENCE -- to take out results
|
---|
| 536 | ;" The character used to divide nodes, e.g. '/' OPTIONAL .. defaults to '/'
|
---|
| 537 | ;"Output:PATH: the path part of IN, e.g. '/home/user1/'
|
---|
| 538 | ;" FNAME: the filename part of IN, e.g. 'somefile.txt'
|
---|
| 539 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"SPLITF^TMGMGRST")
|
---|
| 540 | SET NODEDIV=$GET(NODEDIV,"/")
|
---|
| 541 | SET PATH=$GET(PATH)
|
---|
| 542 | SET FNAME=$GET(IN)
|
---|
| 543 | NEW DONE SET DONE=0
|
---|
| 544 | FOR DO QUIT:(DONE=1)
|
---|
| 545 | IF FNAME[NODEDIV DO
|
---|
| 546 | . SET PATH=PATH_$PIECE(FNAME,NODEDIV,1)_NODEDIV
|
---|
| 547 | . SET FNAME=$PIECE(FNAME,NODEDIV,2,256)
|
---|
| 548 | ELSE SET DONE=1
|
---|
| 549 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"SPLITF^TMGMGRST")
|
---|
| 550 | QUIT
|
---|
| 551 | ;
|
---|
| 552 | ;
|
---|
| 553 | DES
|
---|
| 554 | S %D="%ZOSV^%ZTBKC1^%ZIS4^%ZISF^%ZISH^%XUCI^ZISETUP"
|
---|
| 555 | Q
|
---|
| 556 | ;
|
---|
| 557 | ;
|
---|
| 558 | GLOBALS ;Set node zero of file #3.05 & #3.07
|
---|
| 559 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"GLOBALS^TMGMGRST")
|
---|
| 560 | DO OUTP^TMGQIO(SILNTOUT,"!","!","Now, I will check your % globals.")
|
---|
| 561 | DO OUTP^TMGQIO(SILNTOUT,"..........")
|
---|
| 562 | F %="^%ZIS","^%ZISL","^%ZTER","^%ZUA" S:'$D(@%) @%=""
|
---|
| 563 | S:$D(^%ZTSK(0))[0 ^%ZTSK(-1)=100,^%ZTSCH=""
|
---|
| 564 | S Z1=$G(^%ZTSK(-1),-1),Z2=$G(^%ZTSK(0))
|
---|
| 565 | I Z1'=$P(Z2,"^",3) S:Z1'>0 ^%ZTSK(-1)=+Z2 S ^%ZTSK(0)="TASK'S^14.4^"_^%ZTSK(-1)
|
---|
| 566 | S:$D(^%ZUA(3.05,0))[0 ^%ZUA(3.05,0)="FAILED ACCESS ATTEMPTS LOG^3.05^^"
|
---|
| 567 | S:$D(^%ZUA(3.07,0))[0 ^%ZUA(3.07,0)="PROGRAMMER MODE LOG^3.07^^"
|
---|
| 568 | DO OUTP^TMGQIO(SILNTOUT,"... Done")
|
---|
| 569 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"GLOBALS^TMGMGRST")
|
---|
| 570 | Q
|
---|
| 571 | ;
|
---|
| 572 | ;
|
---|
| 573 | NAME() ;Setup the static names for this system
|
---|
| 574 | ;"Input -- none
|
---|
| 575 | ;"Result -- 0=normal exit 1=error
|
---|
| 576 | ;
|
---|
| 577 | ;"WRITE "IN CUSTOM NAME FUNCTION",!
|
---|
| 578 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"NAME^TMGMGRST")
|
---|
| 579 | ;
|
---|
| 580 | NEW RETRY SET RETRY=0
|
---|
| 581 | NEW ABORT SET ABORT=0
|
---|
| 582 | NEW RESULT SET RESULT=1
|
---|
| 583 | ;
|
---|
| 584 | MGR
|
---|
| 585 | IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M1")
|
---|
| 586 |
|
---|
| 587 | IF ABORT=1 GOTO NMQ
|
---|
| 588 | SET RETRY=0
|
---|
| 589 | DO OUTP^TMGQIO(SILNTOUT,"!","!","ENTER NAME OF MANAGER'S UCI,VOLUME SET: "_^%ZOSF("MGR")_"// ")
|
---|
| 590 | DO INP^TMGQIO(.X,SILENTIN,$G(DTIME,9999),$get(INFO("MGR-UCI,VOL")))
|
---|
| 591 | IF X="" SET X=^%ZOSF("MGR")
|
---|
| 592 | IF X="^" DO OUTP^TMGQIO(SILNTOUT,"!","SKIPPING...") GOTO NMQ
|
---|
| 593 | I X]"" DO IF (RETRY=1) goto MGR
|
---|
| 594 | . X ^("UCICHECK")
|
---|
| 595 | . IF 0[Y DO
|
---|
| 596 | . . SET RETRY=1
|
---|
| 597 | . . IF SILENTIN=1 DO
|
---|
| 598 | . . . DO OUTP^TMGQIO(SILNTOUT,"!","Invalid Manager's UCI,VOLUME SET")
|
---|
| 599 | . . . SET ABORT=1
|
---|
| 600 | S ^%ZOSF("MGR")=X
|
---|
| 601 | ;
|
---|
| 602 | IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M2")
|
---|
| 603 | ;
|
---|
| 604 | PROD
|
---|
| 605 | IF ABORT=1 GOTO NMQ
|
---|
| 606 | SET RETRY=0
|
---|
| 607 | DO OUTP^TMGQIO(SILNTOUT,"!","ENTER PRODUCTION (SIGN-ON) UCI,VOLUME SET: "_^%ZOSF("PROD")_"// ")
|
---|
| 608 | DO INP^TMGQIO(.X,SILENTIN,$S($G(DTIME):DTIME,1:9999),$get(INFO("SIGNON-UCI,VOL")))
|
---|
| 609 | IF X="" SET X=^%ZOSF("PROD")
|
---|
| 610 | IF X="^" DO OUTP^TMGQIO(SILNTOUT,"!","SKIPPING...") GOTO NMQ
|
---|
| 611 | I X]"" DO IF (RETRY=1) goto PROD
|
---|
| 612 | . X ^("UCICHECK")
|
---|
| 613 | . IF 0[Y DO
|
---|
| 614 | . . DO OUTP^TMGQIO(SILNTOUT,"!","Invalid Sign-On UCI,VOLUME SET","!")
|
---|
| 615 | . . SET RETRY=1
|
---|
| 616 | . . IF SILENTIN=1 SET ABORT=1
|
---|
| 617 | S ^%ZOSF("PROD")=X
|
---|
| 618 | ;
|
---|
| 619 | IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M3")
|
---|
| 620 | ;
|
---|
| 621 | VOL
|
---|
| 622 | IF ABORT=1 GOTO NMQ
|
---|
| 623 | SET RETRY=0
|
---|
| 624 | DO OUTP^TMGQIO(SILNTOUT,"!","ENTER NAME OF VOLUME SET (use same volume set as for 'Production'): "_^%ZOSF("VOL")_"//")
|
---|
| 625 | DO INP^TMGQIO(.X,SILENTIN,$G(DTIME,9999),$get(INFO("VOLUME-SET")))
|
---|
| 626 | IF X="" SET X=^%ZOSF("VOL")
|
---|
| 627 | IF X="^" DO OUTP^TMGQIO(SILNTOUT,"!","SKIPPING...") GOTO NMQ
|
---|
| 628 | I X]"" DO IF (RETRY=1) goto VOL
|
---|
| 629 | . IF (X'?3U)!(^%ZOSF("PROD")'[X) DO
|
---|
| 630 | . . DO OUTP^TMGQIO(SILNTOUT,"MUST be 3 upper-case letters.")
|
---|
| 631 | . . DO OUTP^TMGQIO(SILNTOUT,"Also, MUST be same Volume Set entered above.")
|
---|
| 632 | . . SET RETRY=1
|
---|
| 633 | . . IF SILENTIN=1 DO
|
---|
| 634 | . . . DO OUTP^TMGQIO(SILNTOUT,"!","Invalid VOLUME SET")
|
---|
| 635 | . . . SET ABORT=1
|
---|
| 636 | SET ^%ZOSF("VOL")=X
|
---|
| 637 | ;
|
---|
| 638 | IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M4")
|
---|
| 639 | ;
|
---|
| 640 | ;"KT copied/modified TMP section from ZOSFGUX (GT.M/Linux specific)
|
---|
| 641 | TMP ;Get the temp directory
|
---|
| 642 | IF ABORT=1 GOTO NMQ
|
---|
| 643 | IF $GET(ZTOS)=8 DO GOTO TMP:(RETRY=1)
|
---|
| 644 | . DO OUTP^TMGQIO(SILNTOUT,"!","Enter the temp directory for the system: '"_^%ZOSF("TMP")_"'//")
|
---|
| 645 | . DO INP^TMGQIO(.X,SILENTIN,$S($G(DTIME):DTIME,1:9999),$get(INFO("TEMP")))
|
---|
| 646 | . IF X="" SET X=^%ZOSF("TMP")
|
---|
| 647 | . IF SILENTIN=0 SET ABORT=1 QUIT
|
---|
| 648 | . ELSE DO QUIT:(RETRY=1)!(ABORT=1)
|
---|
| 649 | . . IF X="" SET ABORT=1 DO OUTP^TMGQIO(SILNTOUT,"SKIPPING...") QUIT
|
---|
| 650 | . . IF X'?1"/".E SET RETRY=1 QUIT
|
---|
| 651 | . S ^%ZOSF("TMP")=X
|
---|
| 652 | . DO OUTP^TMGQIO(SILNTOUT,"!","^%ZOSF setup")
|
---|
| 653 |
|
---|
| 654 | DO OUTP^TMGQIO(SILNTOUT,"!")
|
---|
| 655 | SET RESULT=0
|
---|
| 656 |
|
---|
| 657 | IF $DATA(TMGDEBUG) DO DebugMsg^TMGDEBUG(.DBIndent,"M5")
|
---|
| 658 |
|
---|
| 659 | NMQ
|
---|
| 660 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"NAME^TMGMGRST")
|
---|
| 661 | QUIT RESULT
|
---|
| 662 | ;
|
---|
| 663 | ;
|
---|
| 664 | ;"=====================================================================================
|
---|
| 665 | ;"=====================================================================================
|
---|
| 666 | ;"=====================================================================================
|
---|
| 667 | ;"Note: ZOSFGUX used to be a separate file. I included it here for modification.
|
---|
| 668 |
|
---|
| 669 | ZOSFGUX ;SFISC/MVB,PUG/TOAD - ZOSF Table for GT.M for Unix ;10 Feb 2003 6:37 pm
|
---|
| 670 | ;;8.0;KERNEL;**275**;Jul 10, 1995
|
---|
| 671 | ;; for GT.M for Unix, version 4.3
|
---|
| 672 | ;
|
---|
| 673 | IF $DATA(TMGDEBUG) DO DebugEntry^TMGDEBUG(.DBIndent,"ZOSFGUX^TMGMGRST")
|
---|
| 674 | S %Y=1
|
---|
| 675 | S DTIME=$G(DTIME,600)
|
---|
| 676 | K ^%ZOSF("MASTER"),^%ZOSF("SIGNOFF")
|
---|
| 677 | I $get(^%ZOSF("VOL"))="" S ^%ZOSF("VOL")="ROU"
|
---|
| 678 | ;"I '$D(^%ZOSF("VOL")) S ^%ZOSF("VOL")="ROU"
|
---|
| 679 | K ZO
|
---|
| 680 | F I="MGR","PROD","VOL","TMP" DO
|
---|
| 681 | . IF $D(^%ZOSF(I)) SET ZO(I)=^%ZOSF(I)
|
---|
| 682 | F I=1:2 DO QUIT:Z=""
|
---|
| 683 | . S Z=$P($TEXT(Z+I),";;",2)
|
---|
| 684 | . Q:Z=""
|
---|
| 685 | . S X=$P($TEXT(Z+1+I),";;",2,99)
|
---|
| 686 | . IF Z="OS" S $P(^%ZOSF(Z),"^")=X
|
---|
| 687 | . IF Z'="OS" S ^%ZOSF(Z)=$S($D(ZO(Z)):ZO(Z),1:X)
|
---|
| 688 | ;
|
---|
| 689 | OS2 ;"was OS when this was a separate file.
|
---|
| 690 | S ^%ZOSF("OS")="GT.M (Unix)^19"
|
---|
| 691 | ;
|
---|
| 692 | ;
|
---|
| 693 | ;"I (KT) found the original code for Prod,Vol etc to be same as the NAME function in ZTMGRSET, so
|
---|
| 694 | ;" I'll just use the modifications already made there. I will add the TMP part to NAME()
|
---|
| 695 | IF $$NAME()=1 GOTO ZXQUIT ;"Note, I'm not here making note error returned (doesn't do anything)
|
---|
| 696 |
|
---|
| 697 | ZXQUIT
|
---|
| 698 | IF $DATA(TMGDEBUG) DO DebugExit^TMGDEBUG(.DBIndent,"ZOSFGUX^TMGMGRST")
|
---|
| 699 | ;"write "LEAVING CUSTOM ZOSF",!
|
---|
| 700 | Q
|
---|
| 701 | ;
|
---|
| 702 | ;
|
---|
| 703 | Z ;
|
---|
| 704 | ;;ACTJ
|
---|
| 705 | ;;S Y=$$ACTJ^%ZOSV()
|
---|
| 706 | ;;AVJ
|
---|
| 707 | ;;S Y=$$AVJ^%ZOSV()
|
---|
| 708 | ;;BRK
|
---|
| 709 | ;;U $I:(CENABLE)
|
---|
| 710 | ;;DEL
|
---|
| 711 | ;;N %RD,%OD S %RD=$P($S($ZRO["(":$P($P($ZRO,"(",2),")"),1:$ZRO)," ")_"/",%OD=$S($ZRO["(":$P($ZRO,"(",1)_"/",1:%RD) ZSYSTEM "rm -f "_%RD_X_".m" ZSYSTEM "rm -f "_%OD_X_".o"
|
---|
| 712 | ;;EOFF
|
---|
| 713 | ;;U $I:(NOECHO)
|
---|
| 714 | ;;EON
|
---|
| 715 | ;;U $I:(ECHO)
|
---|
| 716 | ;;EOT
|
---|
| 717 | ;;S Y=$ZA\1024#2 ; <=====
|
---|
| 718 | ;;ERRTN
|
---|
| 719 | ;;^%ZTER
|
---|
| 720 | ;;ETRP
|
---|
| 721 | ;;Q
|
---|
| 722 | ;;GD
|
---|
| 723 | ;;G ^%GD
|
---|
| 724 | ;;$INC
|
---|
| 725 | ;;0
|
---|
| 726 | ;;JOBPARAM
|
---|
| 727 | ;;G JOBPAR^%ZOSV
|
---|
| 728 | ;;LABOFF
|
---|
| 729 | ;;U IO:(NOECHO) ; <=====
|
---|
| 730 | ;;LOAD
|
---|
| 731 | ;;D LOAD^%ZOSV2(X) ;S %N=0 F XCNP=XCNP+1:1 S %N=%N+1,%=$T(+%N^@X) Q:$L(%)=0 S @(DIF_XCNP_",0)")=%
|
---|
| 732 | ;;LPC
|
---|
| 733 | ;;S Y="" ; <=====
|
---|
| 734 | ;;MAGTAPE
|
---|
| 735 | ;;S %MT("BS")="*1",%MT("FS")="*2",%MT("WTM")="*3",%MT("WB")="*4",%MT("REW")="*5",%MT("RB")="*6",%MT("REL")="*7",%MT("WHL")="*8",%MT("WEL")="*9" ; <=====
|
---|
| 736 | ;;MAXSIZ
|
---|
| 737 | ;;Q
|
---|
| 738 | ;;MGR
|
---|
| 739 | ;;VAH,ROU
|
---|
| 740 | ;;MTBOT
|
---|
| 741 | ;;S Y=$ZA\32#2 ; <=====
|
---|
| 742 | ;;MTERR
|
---|
| 743 | ;;S Y=$ZA\32768#2 ; <=====
|
---|
| 744 | ;;MTONLINE
|
---|
| 745 | ;;S Y=$ZA\64#2 ; <=====
|
---|
| 746 | ;;MTWPROT
|
---|
| 747 | ;;S Y=$ZA\4#2 ; <=====
|
---|
| 748 | ;;NBRK
|
---|
| 749 | ;;U $I:(NOCENABLE)
|
---|
| 750 | ;;NO-PASSALL
|
---|
| 751 | ;;U $I:(NOPASSTHRU)
|
---|
| 752 | ;;NO-TYPE-AHEAD
|
---|
| 753 | ;;U $I:(NOTYPEAHEAD)
|
---|
| 754 | ;;PASSALL
|
---|
| 755 | ;;U $I:(PASSTHRU)
|
---|
| 756 | ;;PRIINQ
|
---|
| 757 | ;;S Y=$$PRIINQ^%ZOSV()
|
---|
| 758 | ;;PRIORITY
|
---|
| 759 | ;;QUIT ;G PRIORITY^%ZOSV
|
---|
| 760 | ;;PROD
|
---|
| 761 | ;;VAH,ROU
|
---|
| 762 | ;;PROGMODE
|
---|
| 763 | ;;S Y=$$PROGMODE^%ZOSV()
|
---|
| 764 | ;;RD
|
---|
| 765 | ;;G ^%RD
|
---|
| 766 | ;;RESJOB
|
---|
| 767 | ;;Q:'$D(DUZ) Q:'$D(^XUSEC("XUMGR",+DUZ)) N XQZ S XQZ="^FORCEX[MGR]" D DO^%XUCI ; <=====
|
---|
| 768 | ;;RM
|
---|
| 769 | ;;U $I:WIDTH=$S(X<256:X,1:0)
|
---|
| 770 | ;;RSEL
|
---|
| 771 | ;;K ^UTILITY($J) D ^%RSEL S X="" X "F S X=$O(%ZR(X)) Q:X="""" S ^UTILITY($J,X)=""""" K %ZR
|
---|
| 772 | ;;RSUM
|
---|
| 773 | ;;S Y=0 F %=1,3:1 S %1=$T(+%^@X),%3=$F(%1," ") Q:'%3 S %3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y
|
---|
| 774 | ;;SS
|
---|
| 775 | ;;D ^ZSY
|
---|
| 776 | ;;SAVE
|
---|
| 777 | ;;D SAVE^%ZOSV2(X) ;N %I,%F S %I=$I,%F=$P($S($ZRO["(":$P($P($ZRO,"(",2),")"),1:$ZRO)," ")_"/"_X_".m" O %F:(NEWVERSION) U %F X "F S XCN=$O(@(DIE_XCN_"")"")) Q:+XCN'=XCN S %=@(DIE_XCN_"",0)"") Q:$E(%,1)=""$"" I $E(%)'="";"" W %,!" C %F U %I
|
---|
| 778 | ;;SIZE
|
---|
| 779 | ;;S Y=0 F I=1:1 S %=$T(+I) Q:%="" S Y=Y+$L(%)+2 ; <=====
|
---|
| 780 | ;;TEST
|
---|
| 781 | ;;I X]"",$T(^@X)]""
|
---|
| 782 | ;;TMK
|
---|
| 783 | ;;S Y=$ZA\16384#2
|
---|
| 784 | ;;TMP
|
---|
| 785 | ;;/tmp/
|
---|
| 786 | ;;TRAP
|
---|
| 787 | ;;$ZT="G "_X
|
---|
| 788 | ;;TRMOFF
|
---|
| 789 | ;;U $I:(TERMINATOR="")
|
---|
| 790 | ;;TRMON
|
---|
| 791 | ;;U $I:(TERMINATOR=$C(0,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,127))
|
---|
| 792 | ;;TRMRD
|
---|
| 793 | ;;S Y=$A($ZB)
|
---|
| 794 | ;;TYPE-AHEAD
|
---|
| 795 | ;;U $I:(TYPEAHEAD)
|
---|
| 796 | ;;UCI
|
---|
| 797 | ;;S Y=^%ZOSF("PROD")
|
---|
| 798 | ;;UCICHECK
|
---|
| 799 | ;;S Y=1
|
---|
| 800 | ;;UPPERCASE
|
---|
| 801 | ;;S Y=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
|
---|
| 802 | ;;XY
|
---|
| 803 | ;;S $X=DX,$Y=DY ; <=====
|
---|
| 804 | ;;VOL
|
---|
| 805 | ;;ROU
|
---|
| 806 | ;;ZD
|
---|
| 807 | ;;S Y=$$HTE^XLFDT(X,2) I $L($P(Y,"/"))=1 S Y=0_Y
|
---|