****************************************************************************** * * System Admin Transaction Logging - Restore Files * * Module %M% Version %I% Date %H% * * (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved * This is unpublished proprietary source code of Ardent Software Inc. * The copyright notice above does not evidence any actual or intended * publication of such source code. * ******************************************************************************* * * Maintenence log - insert most recent change descriptions at top * * Date.... GTAR# WHO Description........................................ * 10/14/98 23801 SAP Change copyrights. * 06/10/96 18591 EAP No longer uses tlrestore shell script * 03/25/96 18212 LAG Windows NT port * 10/14/94 15104 DTM Fixed to verify number of prompts * 05/15/94 13286 DTM Initial programming * ******************************************************************************* $OPTIONS INFORMATION id = "%W%" ******************************************************************************* $INCLUDE UNIVERSE.INCLUDE TLOG.H $INCLUDE UNIVERSE.INCLUDE FILENAMES.H $INCLUDE UNIVERSE.INCLUDE MACHINE.NAME $IFDEF UV.MSWIN $DEFINE COMMAND.SEPARATOR "&&" $ELSE $DEFINE COMMAND.SEPARATOR ";" $ENDIF TMP = TRIM( @SENTENCE ) @SYSTEM.RETURN.CODE = 0 CNT = COUNT( TMP, " " ) IF ( CNT < 2 OR CNT > 4 ) THEN PRINT "Error: Incorrect number of arguments" @SYSTEM.RETURN.CODE = -1 END FirstLog = FIELD( TMP, " ", 2 ) LastLog = FIELD( TMP, " ", 3 ) PATH = FIELD( TMP, " ", 4 ) IF PATH = "" THEN RECIO( PATH, RECIO$PATH ) END * Check that the specified directory exists OPENPATH PATH TO FVAR THEN IF STATUS() <> 19 AND STATUS() <> 1 THEN PRINT "Error: ":PATH:" is not a directory." @SYSTEM.RETURN.CODE = -1 END END ELSE PRINT "Error: Unable to open ":PATH @SYSTEM.RETURN.CODE = -1 END CLOSE FVAR Device = FIELD( TMP, " ", 5 ) IF Device = "" THEN * use MT0 Device = "MT0" END * If Device is the id of a record in the &DEVICE& file then it is a * Universe device name otherwise its is an OS file name which on UNIX * could be an OS tape device name. OPEN "","&DEVICE&" TO FVAR ELSE PRINT "Error: Unable to open &DEVICE& file." @SYSTEM.RETURN.CODE = -1 END READV REC FROM FVAR,Device,0 ELSE Filename = Device Device = "" END CLOSE FVAR * Generate a list of log file names to restore. list = "" FOR i = FirstLog TO LastLog list := " -F lg":i NEXT i IF @SYSTEM.RETURN.CODE = 0 AND list <> "" THEN * Get settings for terminal so that we can restore them after * uvrestore has completed. TTYGET tty.settings ELSE NULL * cd to specified directory and restore using file name list. * Blocksize of 512 is temporary workaround for Gtar 18540 Exec.Sentence = OS.EXEC: " 'cd ":PATH:COMMAND.SEPARATOR:UV.ROOT:"/bin/uvrestore -v -l -b 512":list IF Device <> "" THEN Exec.Sentence := " -t ":Device END ELSE Exec.Sentence := " ":Filename END Exec.Sentence := "'" EXECUTE Exec.Sentence TTYSET tty.settings ELSE NULL END RETURN END