From: <cod...@go...> - 2008-07-25 17:05:29
|
Author: uelsk8s Date: Fri Jul 25 10:04:42 2008 New Revision: 78 Modified: branches/iVL/MdlInstallSys.module Log: moved progressbar update to own sub Modified: branches/iVL/MdlInstallSys.module ============================================================================== --- branches/iVL/MdlInstallSys.module (original) +++ branches/iVL/MdlInstallSys.module Fri Jul 25 10:04:42 2008 @@ -243,11 +243,6 @@ DIM sOptPkgPath AS String DIM iVal AS Float DIM sBasePath AS String = ClsGlobal.sSourceMnt &/ "veclinux" - DIM iProgress AS Float - DIM iMBProgress AS Float - DIM ipct AS Float - DIM iMinpct AS Float = ".01" - DIM iMaxpct AS Float = ".99" WITH FrmInstallSys .Resize(FMain.pnlWinHost.Width, FMain.pnlWinHost.Height) @@ -291,29 +286,9 @@ IF hproc.State = Process.Running THEN REPEAT WAIT 2 - ' get the actual size at each snap - SHELL "export gsize=$(df| grep " & ClsPartSel.sRoot & " ) && echo $gsize | cut -f3 -d \' \'" TO iCurrSize - iCurrSize = Trim(CStr(iCurrSize)) - iProgress = CInt(iCurrSize - sTargetSize) - iMBProgress = iProgress / 1024 - IF iMBProgress > CFloat(sPakSize) THEN - iVal = iMaxpct - ELSE - ipct = 100 * iMBProgress - iVal = ipct / sPakSize * 10 - IF iVal < iMinpct THEN - iVal = iMinpct - ENDIF - IF iVal > iMaxpct THEN - iVal = iMaxpct - ENDIF - ENDIF - 'FrmInstallSys.pbInstallProg.Value = (CInt(iCurrSize) / CInt(iTotalSize)) * 0.100 - 'PRINT CStr(iCurrSize) & "/" & CStr(iTotalSize) & " = " & iVal & "%" + UPDATE_STEP_PROGRESS(sTargetSize, sPakSize) PRINT CStr(iCurrSize) & "/" & CStr(iTotalSize) & " = " & iVal & "%" - IF iVal > FrmInstallSys.pbInstallProg.Value THEN - FrmInstallSys.pbInstallProg.Value = iVal - END IF + UNTIL hproc.State = Process.Stopped @@ -337,7 +312,7 @@ END -PUBLIC SUB UPDATE_STEP_PROGRESS(iCurrSize AS Float, iProjectedSize AS Float) +PUBLIC SUB UPDATE_STEP_PROGRESS(sTargetSize AS Float, sPakSize AS Float) DIM iMBProgress AS Float DIM ipct AS Float @@ -345,11 +320,27 @@ DIM iMaxpct AS Float = ".99" DIM iVal AS Float DIM iProgress AS Float - DIM sPakSize AS Variant - DIM sTargetSize AS Variant - DIM iTotalSize AS Integer - 'DIM iCurrSize AS Variant - + DIM iCurrSize AS Variant + + SHELL "export gsize=$(df| grep " & ClsPartSel.sRoot & " ) && echo $gsize | cut -f3 -d \' \'" TO iCurrSize + iCurrSize = Trim(CStr(iCurrSize)) + iProgress = CInt(iCurrSize - sTargetSize) + iMBProgress = iProgress / 1024 + IF iMBProgress > CFloat(sPakSize) THEN + iVal = iMaxpct + ELSE + ipct = 100 * iMBProgress + iVal = ipct / sPakSize * 10 + IF iVal < iMinpct THEN + iVal = iMinpct + ENDIF + IF iVal > iMaxpct THEN + iVal = iMaxpct + ENDIF + ENDIF + IF iVal > FrmInstallSys.pbInstallProg.Value THEN + FrmInstallSys.pbInstallProg.Value = iVal + END IF END @@ -400,7 +391,46 @@ END - +PUBLIC FUNCTION INSTALL_REQUIRED_PACKAGES() AS Integer + + DIM i AS Integer + DIM sFile AS String[] + DIM sLine AS String + DIM sRawFile AS String + DIM sTlzPath AS String + DIM sTlzName AS String + DIM sTlzDesc AS String + DIM sTlzBasePath AS String = ClsGlobal.sSourceMnt &/ "packages" + + 'sRawFile = DConv(File.Load(ClsGlobal.sSourceMnt &/ "packages" &/ "PACKAGES.TXT")) + + 'sFile = Split(sRawFile, "\n") + sFile = SHELL "ls /mnt/cdrom/packages/required/*.t?z" + FOR i = 0 TO sFile.count - 1 + sLine = Trim(sFile[i]) + 'IF Left(sLine, Len("PACKAGE NAME")) = "PACKAGE NAME" THEN + sTlzName = Trim(Right(sLine, Len(sLine) - InStr(sLine, "/"))) + sTlzPath = Trim(Right(sFile[i + 1], Len(sFile[i + 1]) - InStr(sFile[i + 1], "/"))) + 'sTlzPath = Right(sTlzPath, Len(sTlzPath) - 2) ' remove the ./ from the location line + 'END IF + ' now install the package with the information we already have + sDump = "" + sErr = "" + hproc = SHELL "install-pkg " & sTlzBasePath &/ sTlzPath &/ sTlzName & Space(1) & ClsGlobal.sTargetMnt & " || echo \'FAILED\'" FOR READ + WAIT 1 + IF hproc.State = Process.Running THEN + REPEAT + WAIT 2 + ' figure out the progress again + UNTIL + hproc.State = Process.Stopped + END IF + NEXT + + + + +END PUBLIC SUB Process_read() |