{-# LANGUAGE Arrows #-} module JuicyBar.Input.Date (getDate) where import FRP.Grapefruit.Signal as Signal import FRP.Grapefruit.Signal.Continuous as CSignal import FRP.Grapefruit.Setup (Setup, fromIO) import FRP.Grapefruit.Circuit as Circuit import Control.Arrow as Arrow import System.IO import System.Locale import System.Time produceDate :: String -> IO String produceDate format = do t <- toCalendarTime =<< getClockTime return $ formatCalendarTime defaultTimeLocale format t getDate :: Circuit era String (CSignal era String) getDate = proc format -> do signal <- produce $ CSignal.producer $ produceDate format -<< () returnA -< signal