packages feed

air-extra 2012.12.18 → 2013.6.13

raw patch · 2 files changed

+50/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Air.Extra: halt :: IO ()
+ Air.Extra: line_buffer :: IO ()
+ Air.Extra: now_in_zoned_time :: IO String
+ Air.Extra: safe_spec :: IO () -> IO ExitCode
+ Air.Extra: with_spec :: IO () -> IO b -> IO ()

Files

air-extra.cabal view
@@ -1,5 +1,5 @@ Name:                 air-extra-Version:              2012.12.18+Version:              2013.6.13 Build-type:           Simple Synopsis:             air-extra Description:          An alternative Haskell Prelude library, extra helpers
src/Air/Extra.hs view
@@ -8,8 +8,10 @@ import Data.Time.Clock.POSIX import Air.Light import Numeric-import Prelude hiding ((.), (^), (>), (<), (/), elem, foldl)+import Prelude hiding ((.), (^), (>), (<), (/), elem, foldl, (-)) import System.Directory+import System.Exit (ExitCode(..))+import qualified Control.Exception as E import System.IO import System.Locale (defaultTimeLocale) import System.Time@@ -19,6 +21,7 @@ import qualified Data.List as L import qualified Prelude as Prelude import qualified System.IO.Unsafe as Unsafe+import Control.Monad (forever)   -- Parallel@@ -128,6 +131,19 @@ simple_time_format :: String simple_time_format = "%Y-%m-%d %H:%M:%S %Z" +now_in_zoned_time :: IO String+now_in_zoned_time = do+  timestamp <- now++  tz <- getCurrentTimeZone++  let zoned_time = utcToZonedTime tz timestamp++  let time_str = formatTime defaultTimeLocale simple_time_format zoned_time+  +  return time_str++ parse_time :: String -> String -> UTCTime parse_time = readTime defaultTimeLocale @@ -152,3 +168,35 @@ b2u, u2b :: String -> String b2u = Codec.decodeString u2b = Codec.encodeString+++-- IO+line_buffer :: IO ()+line_buffer = do+  hSetBuffering stdout LineBuffering+  hSetBuffering stderr LineBuffering+++-- Continuse Integration++safe_spec :: IO () -> IO ExitCode+safe_spec spec = E.handle (\e -> return (e :: ExitCode)) - do+  spec+  return ExitSuccess++halt :: IO ()+halt = forever - sleep 1+  +with_spec :: IO () -> IO b -> IO ()+with_spec spec io = do+  exit_code <- safe_spec spec+  +  case exit_code of+    ExitSuccess -> do+      fork - io+    _ ->+      return ()+  +  halt+  +