[Pkg-haskell-commits] [SCM] haskell-testpack branch, master, updated. debian/1.0.2-1-4-gb0d6b36
John Goerzen
jgoerzen at complete.org
Fri Apr 23 15:14:40 UTC 2010
The following commit has been merged in the master branch:
commit 0b7cc3a58f64e5d5d38b8dee09b3c6ab05664952
Author: John Goerzen <jgoerzen at complete.org>
Date: Fri Nov 24 06:38:07 2006 +0100
Support custom unit
diff --git a/MissingH/ProgressMeter.hs b/MissingH/ProgressMeter.hs
index 566485f..1fa17d6 100644
--- a/MissingH/ProgressMeter.hs
+++ b/MissingH/ProgressMeter.hs
@@ -48,6 +48,7 @@ data ProgressMeterR =
ProgressMeterR {masterP :: Progress,
components :: [Progress],
width :: Int,
+ unit :: String,
renderer :: Integer -> String,
autoDisplayers :: [ThreadId]}
@@ -61,18 +62,22 @@ type ProgressMeter = MVar ProgressMeterR
* MissingH.Quantity.renderNum binaryOpts 1
+* Unit inticator @"B"@
+
-}
simpleNewMeter :: Progress -> IO ProgressMeter
-simpleNewMeter pt = newMeter pt 80 (renderNum binaryOpts 1)
+simpleNewMeter pt = newMeter pt "B" 80 (renderNum binaryOpts 1)
{- | Set up a new status bar. -}
newMeter :: Progress -- ^ The top-level 'Progress'
+ -> String -- ^ Unit indicator string
-> Int -- ^ Width of the terminal -- usually 80
-> (Integer -> String)-- ^ A function to render sizes
-> IO ProgressMeter
-newMeter tracker w rfunc =
+newMeter tracker u w rfunc =
newMVar $ ProgressMeterR {masterP = tracker, components = [],
- width = w, renderer = rfunc, autoDisplayers = []}
+ width = w, renderer = rfunc, autoDisplayers = [],
+ unit = u}
{- | Adjust the list of components of this 'ProgressMeter'. -}
setComponents :: ProgressMeter -> [Progress] -> IO ()
@@ -183,12 +188,14 @@ renderMeterR meter =
rendercomponent :: (Integer -> String) -> Progress -> IO String
rendercomponent rfunc pt = withStatus pt $ \pts ->
do pct <- renderpctpts pts
+ let u = unit pts
return $ "[" ++ trackerName pts ++ " " ++
- rfunc (completedUnits pts) ++ "B/" ++
- rfunc (totalUnits pts) ++ "B " ++ pct ++ "]"
+ rfunc (completedUnits pts) ++ u ++ "/" ++
+ rfunc (totalUnits pts) ++ u ++ " " ++ pct ++ "]"
renderoverall rfunc pt = withStatus pt $ \pts ->
do etr <- getETR pts
speed <- getSpeed pts
- return $ rfunc (floor speed) ++ "B/s " ++ renderSecs etr
+ return $ rfunc (floor speed) ++ (unit pts) ++
+ "/s " ++ renderSecs etr
--
haskell-testpack
More information about the Pkg-haskell-commits
mailing list