home *** CD-ROM | disk | FTP | other *** search
/ .net 2000 December / Net78.iso / pc / Software / Netscape 6 / PC / psm.xpi / install.js
Encoding:
JavaScript  |  2000-09-29  |  5.0 KB  |  161 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. function updateWinReg4Ren8dot3() 
  25. {
  26.   fTemp = getFolder("Temporary");
  27.  
  28.   //Notes:
  29.   // can't use a double backslash before subkey - Windows already puts it in.            
  30.   // subkeys have to exist before values can be put in.
  31.   var winreg = getWinRegistry() ;
  32.   var subkey;  //the name of the subkey you are poking around in
  33.   var valname; // the name of the value you want to look at
  34.   var value;   //the data in the value you want to look at.
  35.  
  36.   if(winreg != null) 
  37.   {
  38.     // Here, we get the current version.
  39.     winreg.setRootKey(winreg.HKEY_CURRENT_USER) ;  // CURRENT_USER
  40.     subkey  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce" ;
  41.     winreg.createKey(subkey,"");
  42.     valname = "ren8dot3";
  43.     value   = fPSM + "ren8dot3.exe " + fTemp + "ren8dot3.ini";
  44.     err     = winreg.setValueString(subkey, valname, value);
  45.   }
  46. }
  47.  
  48. function updatePrivateProfile()
  49. {
  50.     fTemp        = getFolder("Temporary");
  51.     fProgram     = getFolder("Program");
  52.     fRen8dot3Ini = getWinProfile(fTemp, "ren8dot3.ini");
  53.  
  54.     err = fRen8dot3Ini.writeString("rename", fPSM + "nsbrk3~1.dll", fPSM + "nsbrk3231.dll");
  55.     err = fRen8dot3Ini.writeString("rename", fPSM + "nscnv3~1.dll", fPSM + "nscnv3231.dll");
  56.     err = fRen8dot3Ini.writeString("rename", fPSM + "nscol3~1.dll", fPSM + "nscol3231.dll");
  57.     err = fRen8dot3Ini.writeString("rename", fPSM + "nsfmt3~1.dll", fPSM + "nsfmt3231.dll");
  58.     err = fRen8dot3Ini.writeString("rename", fPSM + "nsres3~1.dll", fPSM + "nsres3231.dll");
  59.     err = fRen8dot3Ini.writeString("rename", fPSM + "nsuni3~1.dll", fPSM + "nsuni3231.dll");
  60.  
  61.     return(0);
  62. }
  63.  
  64. function updateWindowsRegistry(psmPath)
  65. {
  66.   var winReg = getWinRegistry();
  67.   if(winReg != null)
  68.   {
  69.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  70.     subKey    = "SOFTWARE\\Netscape";
  71.     err       = winReg.createKey(subKey, "");
  72.  
  73.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager";
  74.     err       = winReg.createKey(subKey, "");
  75.  
  76.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager\\Main";
  77.     valueName = "Install Directory";
  78.     err       = winReg.createKey(subKey, "");
  79.     err       = winReg.setValueString(subKey, valueName, psmPath);
  80.   }
  81.   else
  82.   {
  83.     logComment("getWinRegsitry() failed: " + winReg);
  84.   }
  85. }
  86.  
  87. function getPSMFolder()
  88. {
  89.   var winReg = getWinRegistry();
  90.   if(winReg != null)
  91.   {
  92.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  93.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager\\Main";
  94.     valueName = "Install Directory";
  95.     fPSMstr   = winReg.getValueString(subKey, valueName);
  96.     if((fPSMstr == null) || (fPSMstr == ""))
  97.     {
  98.       subKey          = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
  99.       valueName       = "CommonFilesDir";
  100.       fCommonFilesDir = winReg.getValueString(subKey, valueName);
  101.       fPSMstr         = fCommonFilesDir + "\\Netscape Shared\\Security\\";
  102.     }
  103.  
  104.     fPSM = getFolder("file:///", fPSMstr);
  105.   }
  106.   else
  107.   {
  108.     logComment("getWinRegsitry() failed: " + winReg);
  109.   }
  110.  
  111.   return fPSM;
  112. }
  113.  
  114. // main
  115. var srDest;
  116. var err;
  117. var fPSM;
  118. //var agt;
  119. //var is_winnt;
  120.  
  121. srDest = 5761;
  122. err    = initInstall("Netscape Personal Security Manager", "/Netscape/Personal Security Manager", "6.0.N6.2000092909"); 
  123. logComment("initInstall() returned: " + err);
  124.  
  125. //agt      = navigator.userAgent.toLowerCase(); 
  126. //is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
  127. fPSM     = getPSMFolder();
  128.  
  129. if(verifyDiskSpace(fPSM, srDest))
  130. {
  131.   setPackageFolder(fPSM);
  132.   err  = addDirectory("/Netscape/Personal Security Manager/Program",
  133.                       "6.0.N6.2000092909",
  134.                       "psm",                 // dir name in jar to extract 
  135.                       fPSM,                  // Where to put this file (Returned from getFolder) 
  136.                       "",                    // subdir name to create relative to communicatorFolder
  137.                       true );                // Force Flag 
  138.   logComment("addDirectory() returned: " + err);
  139.  
  140.   // check return value
  141.   if(!err)
  142.   {
  143.     updateWindowsRegistry(fPSM);
  144.  
  145. //    if(is_winnt == false)
  146. //    {
  147.       updatePrivateProfile();
  148.       updateWinReg4Ren8dot3();
  149. //    }
  150.  
  151.     err = performInstall(); 
  152.     logComment("performInstall() returned: " + err);
  153.   }
  154.   else
  155.     cancelInstall(err);
  156. }
  157. else
  158.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  159.  
  160. // end main
  161.