home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / lotus / english / winagent / install.dsk / INST.LSS < prev    next >
Text File  |  1995-01-25  |  10KB  |  942 lines

  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.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104. USE "TOOLKIT"
  105. OPTION DECLARE
  106.  
  107.  
  108.  
  109.  
  110. DECLARE PUBLIC FUNCTION ProductRegINST (prodno%, network$, direction$) AS STRING
  111. DECLARE PUBLIC FUNCTION DefaultUserRegINST (prodno%, network$, direction$) AS STRING
  112. DECLARE PUBLIC FUNCTION InitINST (prodno%, network$, direction$, basedir$) AS STRING
  113. DECLARE PUBLIC FUNCTION PathChangeINST (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  114. DECLARE PUBLIC FUNCTION InitCopyListINST (prodno%, network$, direction$) AS STRING
  115. DECLARE PUBLIC FUNCTION PreCopyConfigINST (prodno%, network$, direction$, lic%) AS STRING
  116. DECLARE PUBLIC FUNCTION AddTheBillBoardsINST (prodno%, network$, direction$, nbytes&) AS STRING
  117. DECLARE PUBLIC FUNCTION PostCopyConfigINST (prodno%, network$, direction$, programgroup$) AS STRING
  118. DECLARE PUBLIC FUNCTION AddIconsINST (prodno%, network$, direction$, programgroup$) AS STRING
  119. DECLARE PUBLIC FUNCTION UIINST (prodno%, network$, direction$) AS STRING
  120. DECLARE PUBLIC FUNCTION PostSuccessRegINST (prodno%, network$, direction$) AS STRING
  121.  
  122.  
  123.  
  124. DECLARE FUNCTION GetINSTPathfromLotusIni() AS STRING
  125.  
  126.  
  127. PUBLIC gProdsupport%
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. SUB Initialize
  155.    Reg_RegisterProductNames "INST", LdString(SID_BLANKTEXT) 
  156. END SUB
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195. PUBLIC FUNCTION ProductRegINST (prodno%, network$, direction$) AS STRING
  196.    ProductRegINST = gNEXT
  197.  
  198.    Reg_SetSupportedInstallTypes prodno%, 1, 1, 1
  199.    
  200.    Reg_SetProdSizes prodno%, 524288, 524288 
  201.    Reg_SetUIInOrOut prodno%, 1  
  202.    Reg_SetShareFlags prodno%, 0, 0, 0, 0 
  203.  
  204.    Reg_SetAllowUserToPickInSuite prodno%, 0
  205.  
  206.    
  207.    
  208.    
  209.  
  210.    
  211.    
  212.    
  213.    Reg_SetSrvSupport prodno%, 1
  214.    Reg_SetLicenseSupport prodno%, 0
  215.    Reg_SetATMSupport prodno%, 0
  216.  
  217.    
  218.  
  219.  
  220. END FUNCTION
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265. PUBLIC FUNCTION DefaultUserRegINST (prodno%, network$, direction$) AS STRING
  266.  
  267.    DefaultUserRegINST = gNEXT
  268.  
  269. END FUNCTION
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326. PUBLIC FUNCTION InitINST (prodno%, network$, direction$, basedir$) AS STRING
  327. DIM dirSym$, sym$, symname$
  328.  
  329.    InitINST = direction$
  330.    
  331.    If direction$ = gBACK Then
  332.       EXIT FUNCTION
  333.    End If
  334.  
  335.    If network$ <> gSERVER AND network$ <> gSTANDARD Then
  336.          Reg_SetUIInOrOut prodno%, FALSE
  337.    Else
  338.       
  339.       IF GetSymbolValue(SYM_SINGLESMARTSUITE$) = gSINGLE$ THEN
  340.          dirSym$ = Reg_GetDirSymbolList(1)
  341.          If GetListLength(dirSym$) >= 1 Then
  342.             dirSym$ = GetListItem(dirSym$, 1)
  343.             SetSymbolValue "INSTDIR", GetSymbolValue(dirSym$)
  344.          Else
  345.             SetSymbolValue "INSTDIR", basedir$
  346.          End If
  347.       Else
  348.          SetSymbolValue "INSTDIR", basedir$
  349.       End If
  350.  
  351.       sym$ = Reg_GetDirSymbolList(prodno%)
  352.       symname$ = sym$ + gNAME
  353.  
  354.       SetSymbolValue "INSTDIRNAME", " "
  355.  
  356.       SetListItem sym$, 1, "INSTDIR"
  357.       SetListItem symname$, 1, "INSTDIR" + gNAME$
  358.  
  359.    End If
  360.  
  361. END FUNCTION
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398. PUBLIC FUNCTION PathChangeINST (prodno%, network$, direction$, destdirsym$, mainprodsonly%) AS STRING
  399. DIM path$
  400.  
  401.    PathChangeINST = gNEXT
  402.  
  403.    path$ = GetSymbolValue (destdirsym$)
  404.    
  405.    
  406.    
  407.    
  408.    
  409.    
  410.  
  411. END FUNCTION
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442. PUBLIC FUNCTION InitCopyListINST (prodno%, network$, direction$) AS STRING
  443. DIM i%, sym$, chpt$
  444.  
  445.    InitCopyListINST = direction$
  446.    
  447.    If direction$ = gBACK Then
  448.       EXIT FUNCTION
  449.    End If
  450.  
  451.    sym$ = Reg_GetProductAcronym(prodno%) + gTOP$
  452.    chpt$ = Lot_GetChapterFromKeyWord(sym$)
  453.  
  454.    if chpt$ = "" then   
  455.       ErrorMsg 0, "Developers: You need to have install section with INSTTOP in INF file"
  456.       ERROR STFQUIT
  457.    end if
  458.  
  459.    SELECT CASE Reg_GetProdSelectedInstallType(prodno%)
  460.  
  461.    CASE gCOMPLETE$
  462.       i% = F_COMPLETE
  463.    CASE gLAPTOP$
  464.       i% = F_LAPTOP
  465.    CASE gCUSTOM$
  466.       i% = F_CUSTOM
  467.    END SELECT
  468.  
  469.    Lot_InitializeCopyList chpt$, i%
  470.  
  471.    
  472.    If network$ <> gSERVER$ Then
  473.       If FIsKeywordinCopyList ("INSTFILES") <> FALSE Then
  474.          chpt$ =  Lot_GetChapterFromKeyword("INSTFILES")
  475.          Lot_ToggleChapterFilesInCopyList chpt$              
  476.       End If
  477.    End If
  478.         
  479.  
  480. END FUNCTION
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516. PUBLIC FUNCTION UIINST (prodno%, network$, direction$) AS STRING
  517.    UIINST = direction$
  518.    
  519.    If direction$ = gBACK Then
  520.       EXIT FUNCTION
  521.    End If
  522.  
  523. END FUNCTION
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. PUBLIC FUNCTION PreCopyConfigINST (prodno%, network$, direction$, lic%) AS STRING
  557. DIM dirSym$
  558.  
  559.    PreCopyConfigINST = gNEXT
  560.  
  561.    
  562.    If GetSymbolValue (SYM_SINGLESMARTSUITE) =  gSINGLE$ Then
  563.       dirSym$ = Reg_GetDirSymbolList(1)
  564.       If GetListLength(dirSym$) >= 1 Then
  565.          dirSym$ = GetListItem(dirSym$, 1)
  566.       End If
  567.       SetSymbolValue "INSTDIR", GetSymbolValue(dirSym$)
  568.    Else
  569.       SetSymbolValue "INSTDIR", GetSymbolValue (SYM_BASEDIR$)
  570.    End If
  571.  
  572.    Lot_RefreshDestination ("INSTDIR") 
  573.  
  574.  
  575. END FUNCTION
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605. PUBLIC FUNCTION AddTheBillBoardsINST (prodno%, network$, direction$, nbytes&) AS STRING
  606.    AddTheBillBoardsINST = direction$
  607.    
  608.    If direction$ = gBACK Then
  609.       EXIT FUNCTION
  610.    End If
  611.  
  612.    
  613.    
  614.    
  615.    
  616.    
  617.  
  618. END FUNCTION
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702. PUBLIC FUNCTION PostCopyConfigINST (prodno%, network$, direction$, programgroup$) AS STRING
  703. DIM ripath$, prodbaseDir$, gInstallIniFile$, cwd$, TmpInstallIni$
  704. DIM executable$
  705.    PostCopyConfigINST = direction$
  706.    
  707.    If direction$ = gBACK Then
  708.       EXIT FUNCTION
  709.    End If
  710.    
  711.    
  712.    prodbaseDir$ = Lot_GetInstallDir()
  713.    gInstallIniFile$ = MakePath(prodbaseDir$,gINSTALLINI$)
  714.  
  715.    
  716.    
  717.    
  718.  
  719.    cwd$ = GetSymbolValue(SYM_STF_CWDDIR$)
  720.    TmpInstallIni$ = MakePath(cwd$,gINSTALLINI$)
  721.    executable$ = GetIniKeyString(TmpInstallIni$, "TOOLKIT","LAUNCHEXE")    
  722.  
  723.    IF executable$ <> "" THEN
  724.       gProdsupport% = 1
  725.       
  726.       CreateIniKeyValue gInstallIniFile$, "TOOLKIT", "LAUNCHEXE", executable$, cmoOverwrite    
  727.    ELSE
  728.       
  729.       gProdsupport% = 0        
  730.    END IF
  731.  
  732.  
  733.    
  734.    
  735.    
  736.  
  737.    IF network$ = gDISTRIBUTION$ THEN
  738.       IF Lot_IsTheFeatureInstalled("INSTTOP") THEN    
  739.      CreateIniKeyValue gInstallIniFile$, "TOOLKIT", "DISTRIBUTION", "YES", cmoVital    
  740.       END IF
  741.    END IF
  742.  
  743. SKIPCONFIG:
  744.  
  745. END FUNCTION
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813. PUBLIC FUNCTION AddIconsINST (prodno%, network$, direction$, programgroup$) AS STRING
  814. DIM instdir$
  815.    AddIconsINST = direction$
  816.    
  817.    If direction$ = gBACK Then
  818.       EXIT FUNCTION
  819.    End If
  820.  
  821.    If network$ = gSERVER Then
  822.       instdir$ = Lot_WhereIsFeature(prodno%, "INSTFILES", "install.exe")
  823.       ASSERT instdir$ <> "", ""
  824.       CreateProgmanItem  programgroup$, LdString(SID_INST_VIEWSTRING)+_
  825.                          Reg_GetProductName(1), instdir$ + "install.exe", "", cmoOverwrite
  826.    End If
  827.  
  828.  
  829. END FUNCTION
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854. PUBLIC FUNCTION PostSuccessRegINST (prodno%, network$, direction$) AS STRING
  855.  
  856. DIM rc$, ExecError%, notused%, executable$, gInstallIniFile$, prodbaseDir$
  857. DIM distribution$, automation$
  858.    PostSuccessRegINST = direction$
  859.    
  860.    
  861.    
  862.    
  863.  
  864.    network$ = GetSymbolValue(SYM_NETWORK$)
  865.    automation$ = GetSymbolValue(SYM_AUTOMATIONINST$)
  866.    
  867.    prodbaseDir$ = Lot_GetInstallDir()
  868.    gInstallIniFile$ = MakePath(prodbaseDir$,gINSTALLINI$)
  869.    distribution$ = GetIniKeyString(gInstallIniFile$, "TOOLKIT", "DISTRIBUTION")
  870.    IF network$ <> gNODE$    AND _
  871.       distribution$ = ""    AND _
  872.       automation$ <> gTRUE$ THEN
  873.        executable$ = GetIniKeyString(gInstallIniFile$, "TOOLKIT","LAUNCHEXE")    
  874.        IF executable$ <> "" THEN
  875.      
  876.      
  877.      IF RIGHT$(prodbaseDir$, 1) <> "\" THEN
  878.         prodbaseDir$ = prodbaseDir$ + "\"
  879.      END IF
  880.      executable$ = prodbaseDir$ + executable$
  881.      IF DoesFileExist(executable$,femExists) <> 0 AND _
  882.         gProdsupport% = 1 THEN
  883.         ExecError% = WinExec(executable$,SW_SHOWNORMAL)
  884.             IF ExecError% < 32 THEN
  885.            ErrorMsg SID_ERR_EXECPIPELINE, executable$
  886.             END IF
  887.          END IF
  888.  
  889.        END IF
  890.    END IF
  891.         
  892. END FUNCTION
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913. FUNCTION GetINSTPathfromLotusIni() AS STRING
  914. DIM DestDir$, lotusinipath$, defdir$, temp%, ProdDir$, fullpath$, rv%
  915.  
  916.    DestDir$ = GetWindowsDir()
  917.    lotusinipath$ = DestDir$ +"lotus.ini"
  918.  
  919.    if DoesFileExist(lotusinipath$,femExists) then
  920.       defdir$ = GetIniKeyString(lotusinipath$,"Lotus Applications", "inst")
  921.       if defdir$ <> "" then
  922.          temp% = INSTR(1,LCASE$(defdir$),"inst.exe")
  923.          if temp% <> 0 then
  924.             ProdDir$ = MID$(defdir$,1,(temp%-1))
  925.             if ProdDir$ <> "" then
  926.                fullpath$ = ProdDir$ + "inst.exe"
  927.                if DoesFileExist(fullpath$, femExists) then
  928.                   rv% = Lot_CleanPath(fullpath$)
  929.                   GetINSTPathfromLotusIni = fullpath$
  930.                   EXIT FUNCTION
  931.                end if 
  932.             end if 
  933.          end if 
  934.       end if 
  935.    end if
  936.  
  937.    GetINSTPathfromLotusIni = ""
  938.  
  939. END FUNCTION
  940.  
  941.  
  942.