home *** CD-ROM | disk | FTP | other *** search
/ Software Express 1 & 2 / EXPRESS_001.iso / psnlffm / netware / merlin / netdemo / cpavdemo.mst < prev    next >
Encoding:
Text File  |  1993-11-28  |  8.6 KB  |  296 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST FILESEXIST    = 1100
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24. CONST DISKDAY = 6
  25. CONST DISKMONTH = 1
  26.  
  27. GLOBAL DEST$        ''Default destination directory.
  28. GLOBAL OPTCUR$      ''Option selection from option dialog.
  29.  
  30. DECLARE SUB Install
  31. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  32. DECLARE FUNCTION CheckFile (szFile$) AS INTEGER
  33.  
  34.  
  35. INIT:
  36.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.  
  39. ''    SetBitmap CUIDLL$, LOGO
  40.     SetTitle "CPS Anti-Virus for NetWare Demo Setup"
  41.  
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.         szInf$ = GetSymbolValue("STF_CWDDIR") + "CPAVDEMO.INF"
  45.     END IF
  46.     ReadInfFile szInf$
  47.  
  48.     OPTCUR$ = "1"
  49.     DEST$ = "C:\CPAVDEMO"
  50.  
  51. '$IFDEF DEBUG
  52.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  53.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  54.     IF IsDriveValid(WinDrive$) = 0 THEN
  55.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  56.         GOTO QUIT
  57.     END IF
  58. '$ENDIF ''DEBUG
  59.  
  60.  
  61. WELCOME:
  62.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  63.     IF sz$ = "CONTINUE" THEN
  64.         UIPop 1
  65.     ELSE
  66.         GOSUB ASKQUIT
  67.         GOTO WELCOME
  68.     END IF
  69.  
  70.  
  71. OPTION:
  72.     SetSymbolValue "RadioDefault", OPTCUR$
  73. OPTL1:
  74.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  75.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  76.  
  77.     IF sz$ = "CONTINUE" THEN
  78.         UIPop(1)
  79.     ELSEIF sz$ = "REACTIVATE" THEN
  80.         GOTO OPTL1
  81.     ELSE
  82.         GOSUB ASKQUIT
  83.         GOTO OPTION
  84.     END IF
  85.  
  86.  
  87. GETPATH:
  88.     SetSymbolValue "EditTextIn", DEST$
  89.     SetSymbolValue "EditFocus", "END"
  90. GETPATHL1:
  91.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  92.     DEST$ = GetSymbolValue("EditTextOut")
  93.  
  94.     IF sz$ = "CONTINUE" THEN
  95.         IF IsDirWritable(DEST$) = 0 THEN
  96.             GOSUB BADPATH
  97.             GOTO GETPATHL1
  98.         END IF
  99.         UIPop 1
  100.     ELSEIF sz$ = "REACTIVATE" THEN
  101.         GOTO GETPATHL1
  102.     ELSEIF sz$ = "BACK" THEN
  103.         UIPop 1
  104.         GOTO OPTION
  105.     ELSE
  106.         GOSUB ASKQUIT
  107.         GOTO GETPATH
  108.     END IF
  109.  
  110.  
  111. '' Check for some files first
  112.  
  113.  
  114.  
  115. '    FILENAME$ = MakePath(DEST$, "WNCPAVNT.EXE")
  116. '    IF CheckFile(FILENAME$) = 1 THEN
  117. '        GOSUB FILESEXIST
  118. '        GOTO GETPATH
  119. '    END IF
  120.  
  121. '    FILENAME$ = MakePath(DEST$, "NWIPXSPX.DLL")
  122. '    IF CheckFile(FILENAME$) = 1 THEN
  123. '        GOSUB FILESEXIST
  124. '        GOTO GETPATH
  125. '    END IF
  126. '    FILENAME$ = MakePath(DEST$, "NWNETAPI.DLL")
  127. '    IF CheckFile(FILENAME$) = 1 THEN
  128. '        GOSUB FILESEXIST
  129. '        GOTO GETPATH
  130. '    END IF
  131.  
  132.     Install
  133.  
  134.  
  135. QUIT:
  136.     ON ERROR GOTO ERRQUIT
  137.  
  138.     IF ERR = 0 THEN
  139.         dlg% = EXITSUCCESS
  140.     ELSEIF ERR = STFQUIT THEN
  141.         dlg% = EXITQUIT
  142.     ELSE
  143.         dlg% = EXITFAILURE
  144.     END IF
  145. QUITL1:
  146.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  147.     IF sz$ = "REACTIVATE" THEN
  148.         GOTO QUITL1
  149.     END IF
  150.     UIPop 1
  151.  
  152.     END
  153.  
  154. ERRQUIT:
  155.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  156.     END
  157.  
  158.  
  159.  
  160. BADPATH:
  161.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  162.     IF sz$ = "REACTIVATE" THEN
  163.         GOTO BADPATH
  164.     END IF
  165.     UIPop 1
  166.     RETURN
  167.  
  168.  
  169.  
  170. ASKQUIT:
  171.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  172.  
  173.     IF sz$ = "EXIT" THEN
  174.         UIPopAll
  175.         ERROR STFQUIT
  176.     ELSEIF sz$ = "REACTIVATE" THEN
  177.         GOTO ASKQUIT
  178.     ELSE
  179.         UIPop 1
  180.     END IF
  181.     RETURN
  182.  
  183. FILESEXIST:
  184.     sz$ = UIStartDlg(CUIDLL$, FILESEXIST, "FInfo0DlgProc", 0, "")
  185.     IF sz$ = "REACTIVATE" THEN
  186.         GOTO FILESEXIST
  187.     END IF
  188.     UIPop 1
  189.     RETURN
  190.  
  191.  
  192.  
  193. '**
  194. '** Purpose:
  195. '**     Builds the copy list and performs all installation operations.
  196. '** Arguments:
  197. '**     none.
  198. '** Returns:
  199. '**     none.
  200. '*************************************************************************
  201. SUB Install STATIC
  202.  
  203.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  204.     CreateDir DEST$, cmoNone
  205.  
  206.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  207.     WriteToLogFile ""
  208.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  209.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  210.     WriteToLogFile ""
  211.     WriteToLogFile "May have had to create the directory: " + DEST$
  212.     WriteToLogFile ""
  213.  
  214.     CreateDir MakePath(DEST$, "US_MASTE"), cmoNone
  215.     CreateDir MakePath(DEST$, "ENGINEER"), cmoNone
  216.     CreateDir MakePath(DEST$, "FINANCE"), cmoNone
  217.     CreateDir MakePath(DEST$, "UK_MASTE"), cmoNone
  218.     CreateDir MakePath(DEST$, "SALES"), cmoNone
  219.  
  220.     'COPY ALL FILES TO THE ROOT DIRECTORY    
  221.     AddSectionFilesToCopyList "program", SrcDir$, DEST$
  222.     'COPY ALL CFG, LOG, INI FILES TO EACH SERVER
  223.     AddSectionFilesToCopyList "scanner", SrcDir$, MakePath(DEST$, "US_MASTE")
  224.     AddSectionFilesToCopyList "scanner", SrcDir$, MakePath(DEST$, "ENGINEER")
  225.     AddSectionFilesToCopyList "scanner", SrcDir$, MakePath(DEST$, "FINANCE")
  226.     AddSectionFilesToCopyList "scanner", SrcDir$, MakePath(DEST$, "UK_MASTE")
  227.     AddSectionFilesToCopyList "scanner", SrcDir$, MakePath(DEST$, "SALES")
  228.     'COPY MASTER FILES TO THE MASTER SERVERS
  229.     AddSectionFilesToCopyList "master", SrcDir$, MakePath(DEST$, "US_MASTE")
  230.     AddSectionFilesToCopyList "master", SrcDir$, MakePath(DEST$, "UK_MASTE")
  231.     'COPY DIFF. INI INFO TO DIFF DOMAINS
  232.     AddSectionFilesToCopyList "server2", SrcDir$, MakePath(DEST$, "UK_MASTE")
  233.     AddSectionFilesToCopyList "server2", SrcDir$, MakePath(DEST$, "ENGINEER")
  234.     'MAKE THE MASTER CONTAIN DIFF INFO
  235.     AddSectionFilesToCopyList "master1", SrcDir$, MakePath(DEST$, "US_MASTE")
  236.     'GIVE THESE SERVER DIF CFG DATA
  237.     AddSectionFilesToCopyList "UK_DCONFIG", SrcDir$, MakePath(DEST$, "ENGINEER")
  238.     AddSectionFilesToCopyList "US_DCONFIG", SrcDir$, MakePath(DEST$, "SALES")
  239.     CopyFilesInCopyList
  240.  
  241.     IF OPTCUR$ = "1" THEN
  242.        CreateProgmanGroup "CPS AV for NetWare Demo", "", cmoNone
  243.        ShowProgmanGroup  "CPS AV for NetWare Demo", 1, cmoNone
  244.        CreateProgmanItem "CPS AV for NetWare Demo", "CPAV for NetWare Demo", MakePath(DEST$,"WNCPAVNT.EXE"), ",,,,"+DEST$, cmoOverwrite
  245.        CreateProgmanItem "CPS AV for NetWare Demo", "Demo Information", "WRITE.EXE "+MakePath(DEST$,"README.WRI"), "", cmoOverwrite
  246.        CreateProgmanItem "CPS AV for NetWare Demo", "Central Alert Demo", MakePath(DEST$,"wCALERT.EXE"), ",,,,"+DEST$, cmoOverwrite
  247.     END IF
  248.  
  249.     CreateIniKeyValue MakePath(DEST$,"wnuser.ini"), "cps", "BaseDir", DEST$, cmoOverwrite
  250.     CreateIniKeyValue MakePath(DEST$,"wnuser.ini"), "cps", "DataDir", DEST$, cmoOverwrite
  251.     CreateIniKeyValue MakePath(DEST$,"wnuser.ini"), "cps", "LanguageDir", DEST$, cmoOverwrite
  252.     CreateIniKeyValue MakePath(DEST$,"wnuser.ini"), "cps", "SystemDir", DEST$, cmoOverwrite
  253.  
  254.  
  255.     CloseLogFile
  256.  
  257. END SUB
  258.  
  259.  
  260.  
  261. '**
  262. '** Purpose:
  263. '**     Appends a file name to the end of a directory path,
  264. '**     inserting a backslash character as needed.
  265. '** Arguments:
  266. '**     szDir$  - full directory path (with optional ending "\")
  267. '**     szFile$ - filename to append to directory
  268. '** Returns:
  269. '**     Resulting fully qualified path name.
  270. '*************************************************************************
  271. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  272.     IF szDir$ = "" THEN
  273.         MakePath = szFile$
  274.     ELSEIF szFile$ = "" THEN
  275.         MakePath = szDir$
  276.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  277.         MakePath = szDir$ + szFile$
  278.     ELSE
  279.         MakePath = szDir$ + "\" + szFile$
  280.     END IF
  281. END FUNCTION
  282.  
  283. FUNCTION CheckFile (szFile$) STATIC AS INTEGER
  284.     IF DoesFileExist(szFile$, femExists) = 1 THEN
  285.         IF GetMonthFromDate(GetDateOfFile(szFile$)) <> DISKMONTH THEN
  286.             CheckFile = 1
  287.     ELSEIF GetDayFromDate(GetDateOfFile(szFile$)) <> DISKDAY THEN
  288.             CheckFile = 1
  289.         ELSE
  290.             CheckFile = 0
  291.         END IF
  292.     ELSE
  293.         CheckFile = 0
  294.     END IF
  295. END FUNCTION
  296.