happstack-util-6.0.2: Web framework

Happstack.Util.Common

Description

Various helper routines.

Synopsis

Documentation

type Seconds = Int

hPutLine :: Handle -> String -> IO ()

Put a line into a handle followed by rn and echo to stdout

hGetLn :: Handle -> IO String

Get a line from the handle and echo to stdout

splitList :: Eq a => a -> [a] -> [[a]]

Removes the whitespace surrounding a string as well as the first and last character. unBracket (asdf) = asdf

Drops the whitespace at the start of the string

Drops the whitespace at the end of the string

Trims the beginning and ending whitespace of a string

Repeadly splits a list by the provided separator and collects the results

splitListBy :: (a -> Bool) -> [a] -> [[a]]

Repeatedly splits a list and collects the results

split :: (a -> Bool) -> [a] -> ([a], [a])

Split is like break, but the matching element is dropped.

mbReadFile :: a -> (String -> a) -> FilePath -> IO a

Read file with a default value if the file does not exist.

mapFst :: (a -> b) -> [(a, x)] -> [(b, x)]

mapSnd :: (a -> b) -> [(x, a)] -> [(x, b)]

revmap :: a -> [a -> b] -> [b]

applies the list of functions to the provided argument

comp :: Ord t => (a -> t) -> a -> a -> Ordering

comp f a b compares a and b after apply f.

runCommand :: String -> [String] -> IO ()

Run an external command. Upon failure print status to stderr.

debug :: Show a => String -> a -> a

Unsafe tracing, outputs the message and the value to stderr.

debugM :: Monad m => String -> m ()

Unsafe tracing messages inside a monad.

readM :: (Monad m, Read t) => String -> m t

Read in any monad.

maybeM :: Monad m => Maybe a -> m a

Convert Maybe into an another monad. This is a simple injection that calls fail when given a Nothing.

boolM :: MonadPlus m => Bool -> m Bool

Lifts a bool into a MonadPlus, with False mapped to the mzero.

notMb :: a -> Maybe a -> Maybe a

notMb a b returns Just a if b is Nothing and Nothing if b is Just _.

periodic :: [Int] -> IO () -> IO ThreadId

Takes a list of delays, in seconds, and an action to execute repeatedly. The action is then executed repeatedly in a separate thread until the list has been consumed. The first action takes place immediately.

(.^) :: Int -> Int -> Int

periodic' :: [Int] -> IO a -> IO a

Similar to periodic but runs in the same thread