****************************************************************************** * * Transaction Logging Routine to Create a Log Directory * * 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........................................ * 11/03/98 23924 RGA Create dummy entry for rawdisk. * 10/14/98 23801 SAP Change copyrights. * 08/05/96 19000 JC Fix creation of log directory. * 06/03/96 18426 LA Re-implemented special sys admin option * 03/25/96 18212 LAG Windows NT port * 10/21/94 15120 DTM added changes for support of susp/shut inprogress * 05/15/94 13286 DTM Initial Programming * ******************************************************************************* id = "%W%" ******************************************************************************* $INCLUDE UNIVERSE.INCLUDE MTF.INCL.H $INCLUDE UNIVERSE.INCLUDE TLOG.H $INCLUDE UNIVERSE.INCLUDE FILENAMES.H $INCLUDE UNIVERSE.INCLUDE MACHINE.NAME * Equate tokens for return values for sysadmin option EQU LDIR$DIREXISTS TO "0" EQU LDIR$BADPATH TO "1" ****************** ** Windows NT port ** DEFFUN GET.DIRNAME(FILESPEC) CALLING "*GET.DIRNAME" ** ****************** temp = "" CALL *ISUSER.B(0, temp) IF temp = 0 THEN TPRINT UVREADMSG(071000,"") SLEEP 3 STOP END State ="" RECIO( State, FINFO$AI.STATE, RECIO$FINFO ) IF State = AI$INITIAL OR State = AI$WARM.START OR State = AI$LOGGING OR State = AI$SUSPENDED OR State = AI$SUSP.PROG OR State = AI$SHUT.PROG THEN PRINT "Cannot Create Logging Directory... Logging must be SHUTDOWN" STOP END IF State = AI$FULL THEN Cpt = "" RECIO( Cpt, FINFO$AI.CHECKPOINT, RECIO$FINFO ) IF Cpt = 1 THEN PRINT "Cannot Create Logging Directory... Logging must be SHUTDOWN" STOP END END File.Name = FIELD( @SENTENCE, " ", 2 ) ;* get file name from command line Option = FIELD( @SENTENCE, " ", 3 ) ;* see if we are from SysAdm IF Option = "" THEN Option = 0 END ;* First, open file OPEN "DICT", LOGS.FILE to Log.File ELSE ;* open D_UV_LOGS files PRINT ERR.OPEN.D STOP END ;* Second, make sure we can create the directory ****************** ** Windows NT port ** IF OS.TYPE NE "UNIX" THEN File.Name = CONVERT("/", "\", File.Name) END ** ****************** Exec.uvfile = OS.EXEC:" '":UV.BIN:"/UVfile ":File.Name:"'" Exec.mkdir = OS.EXEC:" '":"mkdir ":File.Name:"'" ;* Make sure it does not already exist EXECUTE Exec.uvfile CAPTURING trashcan IF INDEX(trashcan, ": directory", 1) THEN IF Option = 0 THEN PRINT ERR.DIR:File.Name:")" PRINT "File already exists" END ELSE ;* called from sysadmin PRINT LDIR$DIREXISTS END GOTO EXIT END ;* Try and create the directory EXECUTE Exec.mkdir CAPTURING trashcan ;* See if it exists EXECUTE Exec.uvfile CAPTURING trashcan IF NOT(INDEX(trashcan, ": directory", 1)) THEN IF Option = 0 THEN PRINT ERR.DIR:File.Name:")" path = GET.DIRNAME(File.Name) PRINT "Path (":path:") not found" END ELSE ;* called from sysadmin PRINT LDIR$BADPATH END GOTO EXIT END REC = "" ;* initialize dynamic array REC<1> = "X" REC<2> = File.Name ;* Ok, now update record WRITE REC ON Log.File, LOGS.DIR ELSE PRINT ERR.WRITE.D GOTO EXIT END ;* Create a dummy entry for rawdisk REC = "" ;* initialize dynamic array REC<1> = "X" REC<2> = "" ;* Ok, now update record WRITE REC ON Log.File, LOGS.RAWDIR ELSE PRINT ERR.WRITE.D GOTO EXIT END EXIT: CLOSE Log.File END