tldm-universe/Ardent/UV/APP.PROGS/GCI.NTINST.B

113 lines
3.7 KiB
Plaintext
Raw Permalink Normal View History

2024-09-09 21:51:08 +00:00
*****************************************************************************
*
* GCI.NTINST.B - install a GCI library, Windows NT version
*
* 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.
*
*******************************************************************************
*
* Maintenance log - insert most recent change descriptions at top
*
* Date.... GTAR# WHO Description.........................................
* 10/14/98 23801 SAP Change copyrights.
* 04/01/96 18026 PGW Module created.
*
*******************************************************************************
*
* This program installs a new GCI library automatically. It is normally run
* from the GCI.ADMIN menu, but you can run it by hand as follows:
*
* RUN APP.PROGS GCI.NTINST.B file.name
*
* where 'file.name' is the name of a GCI Definition file.
*
* The program simply copies the built library into the UVHOME/bin directory,
* and adds its name to the list of libraries in the Windows NT Registry.
*
*******************************************************************************
*
$OPTIONS DEFAULT
PROGRAM GCI.NTINST.B
ID = "@(#)%M% %I%"
$INCLUDE UNIVERSE.INCLUDE FILENAMES.H
$INCLUDE UNIVERSE.INCLUDE MACHINE.NAME
*
EQUATE bell TO CHAR(7)
PROMPT ""
cl = @(-4)
cl.err = @(0,23):cl
err = cl.err:bell
msg10 = err:PROD.NAMEU:' General Calling Interface is not installed.'
failure.message = "GCI Library installation failed."
OPEN '','DATA.TYPES' TO file.data.types ELSE
PRINT msg10:
INPUT q: ; PRINT cl.err: ; STOP
END
* You *must* specify the definition file by putting its name on the
* command line. This program does not default to 'GCI', since
* bin/gci.dll is installed when uniVerse is installed.
cmd = CONVERT(" ", @FM, TRIM(@SENTENCE))
def.file.name = cmd<4>
IF def.file.name = "" THEN
PRINT "You must specify a GCI Definition File name."
STOP
END
sccsid = DOWNCASE(def.file.name)
dll.name = sccsid : ".dll"
dll.path = "bin\" : dll.name
PRINT @( -1 )
PRINT @( 0, 0 ):"General Calling Interface Administration" : @( 67, 0 ) : "GCI.NTINST.B":
PRINT @( 17, 1): 'Install a GCI Library from GCI Definition File "':def.file.name:'"':
PRINT @( 0, 2 ): STR( "-", 79 ):
PRINT @( 0, 4 ):
PRINT 'This procedure will copy the ':PROD.NAMEU:' GCI library ':dll.name
PRINT 'to the ':UV.BIN:' directory,'
PRINT 'and add it to the list of GCI libraries loaded for all users.'
PRINT
PRINT 'Are you sure you want to continue? (Y/N)':
INPUT ans
ans = UPCASE(ans)
IF ans <> "Y" THEN STOP
* Copy the built dll into the UVHOME/bin directory
xcmd = OS.EXEC : ' "copy ' : UV.GCI : '\' : dll.name : ' ' : UV.BIN : '"'
PRINT xcmd
EXECUTE xcmd CAPTURING xout
IF INDEX(xout, " 1 file(s)", 1) = 0 THEN
LOOP
REMOVE xfrag FROM xout SETTING xdelim
PRINT xfrag
WHILE xdelim > 0 DO
REPEAT
PRINT failure.message
STOP
END
* Update the standard GCI library list
@SYSTEM.SET = -1
xcmd = 'RUN APP.PROGS GCI.NTADDL.B ' : dll.path
PERFORM xcmd
IF @SYSTEM.RETURN.CODE < 0 THEN
PRINT failure.message
END ELSE
PRINT "GCI Library '":dll.name:"' successfully installed."
END
* Done
STOP
END