diff options
| author | Andrea Rossato <andrea.rossato@ing.unitn.it> | 2007-09-27 19:31:09 +0200 | 
|---|---|---|
| committer | Andrea Rossato <andrea.rossato@ing.unitn.it> | 2007-09-27 19:31:09 +0200 | 
| commit | 7761fb260bf7745b03a4036185c902bafabec82f (patch) | |
| tree | a774ab96eb3f9b225fc05017548ee5fb11a6b1b2 | |
| parent | e59cb97a8096bb6c048c76f1c1e3af31cf4cf2c1 (diff) | |
| download | xmobar-7761fb260bf7745b03a4036185c902bafabec82f.tar.gz xmobar-7761fb260bf7745b03a4036185c902bafabec82f.tar.bz2 | |
Main.hs: updated to reflect the API change - code formatting and cleanup
darcs-hash:20070927173109-d6583-6f581f76d50e3c61f7325bd420f05776f4952f09.gz
| -rw-r--r-- | Main.hs | 100 | 
1 files changed, 50 insertions, 50 deletions
| @@ -34,17 +34,17 @@ import System.Posix.Files  -- | The main entry point  main :: IO ()  main =  -    do args <- getArgs +    do args     <- getArgs         (o,file) <- getOpts args -       conf <- case file of -                 [cfgfile] -> readConfig cfgfile -                 _         -> readDefaultConfig -       c <- newIORef conf  +       conf     <- case file of +                     [cfgfile] -> readConfig cfgfile +                     _         -> readDefaultConfig +       c        <- newIORef conf          doOpts c o -       config <- readIORef c -       cl <- parseTemplate config (template config) -       var <- execCommands config cl -       (d,w) <- createWin config +       config   <- readIORef c +       cl       <- parseTemplate config (template config) +       var      <- mapM execCommand cl +       (d,w)    <- createWin config         eventLoop config var d w         return () @@ -52,7 +52,7 @@ main =  readConfig :: FilePath -> IO Config  readConfig f =       do file <- fileExist f -       s <- if file then readFile f else error $ f ++ ": file not found!\n" ++ usage +       s    <- if file then readFile f else error $ f ++ ": file not found!\n" ++ usage         case reads s of           [(config,_)] -> return config           [] -> error $ f ++ ": configuration file contains errors!\n" ++ usage @@ -68,42 +68,42 @@ readDefaultConfig =  data Opts = Help            | Version  -          | Font String -          | BgColor String -          | FgColor String -          | XPos String -          | YPos String -          | Width String -          | Height String -          | Align String -          | Refresh String +          | Font     String +          | BgColor  String +          | FgColor  String +          | XPos     String +          | YPos     String +          | Width    String +          | Height   String +          | Align    String +          | Refresh  String            | Commands String -          | SepChar String +          | SepChar  String            | Template String          deriving Show  options :: [OptDescr Opts]  options = -    [ Option ['h','?'] ["help"] (NoArg Help) "This help" -    , Option ['V'] ["version"] (NoArg Version) "Show version information" -    , Option ['f'] ["font"] (ReqArg Font "font name") "The font name" -    , Option ['B'] ["bgcolor"] (ReqArg BgColor "bg color") "The background color. Default black" -    , Option ['F'] ["fgcolor"] (ReqArg FgColor "fg color") "The foreground color. Default grey" -    , Option ['x'] ["xpos"] (ReqArg XPos "x pos") "The x position. Default 0" -    , Option ['y'] ["ypos"] (ReqArg YPos "y pos") "The y position. Default 0" -    , Option ['W'] ["width"] (ReqArg Width "width") "The status bar width. Default 1024" -    , Option ['H'] ["height"] (ReqArg Height "height") "The status bar height. Default 15" -    , Option ['a'] ["align"] (ReqArg Align "align") "The text alignment: center, left or right.\nDefault: left" -    , Option ['r'] ["refresh"] (ReqArg Refresh "rate") "The refresh rate in tenth of seconds:\ndefault 1 sec." -    , Option ['s'] ["sepchar"] (ReqArg SepChar "char") "The character used to separate commands in\nthe output template. Default '%'" -    , Option ['t'] ["template"] (ReqArg Template "tempate") "The output template" -    , Option ['c'] ["commands"] (ReqArg Commands  "commands")  "The list of commands to be executed" +    [ Option ['h','?' ] ["help"     ] (NoArg  Help                 ) "This help" +    , Option ['V'     ] ["version"  ] (NoArg  Version              ) "Show version information" +    , Option ['f'     ] ["font"     ] (ReqArg Font "font name"     ) "The font name" +    , Option ['B'     ] ["bgcolor"  ] (ReqArg BgColor "bg color"   ) "The background color. Default black" +    , Option ['F'     ] ["fgcolor"  ] (ReqArg FgColor "fg color"   ) "The foreground color. Default grey" +    , Option ['x'     ] ["xpos"     ] (ReqArg XPos "x pos"         ) "The x position. Default 0" +    , Option ['y'     ] ["ypos"     ] (ReqArg YPos "y pos"         ) "The y position. Default 0" +    , Option ['W'     ] ["width"    ] (ReqArg Width "width"        ) "The status bar width. Default 1024" +    , Option ['H'     ] ["height"   ] (ReqArg Height "height"      ) "The status bar height. Default 15" +    , Option ['a'     ] ["align"    ] (ReqArg Align "align"        ) "The text alignment: center, left or right.\nDefault: left" +    , Option ['r'     ] ["refresh"  ] (ReqArg Refresh "rate"       ) "The refresh rate in tenth of seconds:\ndefault 1 sec." +    , Option ['s'     ] ["sepchar"  ] (ReqArg SepChar "char"       ) "The character used to separate commands in\nthe output template. Default '%'" +    , Option ['t'     ] ["template" ] (ReqArg Template "tempate"   ) "The output template" +    , Option ['c'     ] ["commands" ] (ReqArg Commands  "commands" ) "The list of commands to be executed"      ]  getOpts :: [String] -> IO ([Opts], [String])  getOpts argv =       case getOpt Permute options argv of -      (o,n,[]) -> return (o,n) +      (o,n,[])   -> return (o,n)        (_,_,errs) -> error (concat errs ++ usage)  usage :: String @@ -127,22 +127,22 @@ doOpts :: IORef Config -> [Opts] -> IO ()  doOpts _  [] = return ()  doOpts conf (o:oo) =      case o of -      Help -> putStr usage >> exitWith ExitSuccess -      Version -> putStrLn version >> exitWith ExitSuccess -      Font s -> modifyIORef conf (\c -> c { font = s }) >> go -      BgColor s -> modifyIORef conf (\c -> c { bgColor = s }) >> go -      FgColor s -> modifyIORef conf (\c -> c { fgColor = s }) >> go -      XPos s -> modifyIORef conf (\c -> c { xPos = readInt s c xPos}) >> go -      YPos s -> modifyIORef conf (\c -> c { yPos = readInt s c yPos }) >> go -      Width s -> modifyIORef conf (\c -> c { width = readInt s c width }) >> go -      Height s -> modifyIORef conf (\c -> c { height = readInt s c height }) >> go -      Align s -> modifyIORef conf (\c -> c { align = s }) >> go -      Refresh s -> modifyIORef conf (\c -> c { refresh = readInt s c refresh }) >> go -      SepChar s -> modifyIORef conf (\c -> c { sepChar = s }) >> go -      Template s -> modifyIORef conf (\c -> c { template = s }) >> go +      Help       -> putStr   usage   >> exitWith ExitSuccess +      Version    -> putStrLn version >> exitWith ExitSuccess +      Font     s -> modifyIORef conf (\c -> c { font     = s                   }) >> go +      BgColor  s -> modifyIORef conf (\c -> c { bgColor  = s                   }) >> go +      FgColor  s -> modifyIORef conf (\c -> c { fgColor  = s                   }) >> go +      XPos     s -> modifyIORef conf (\c -> c { xPos     = readInt s c xPos    }) >> go +      YPos     s -> modifyIORef conf (\c -> c { yPos     = readInt s c yPos    }) >> go +      Width    s -> modifyIORef conf (\c -> c { width    = readInt s c width   }) >> go +      Height   s -> modifyIORef conf (\c -> c { height   = readInt s c height  }) >> go +      Align    s -> modifyIORef conf (\c -> c { align    = s                   }) >> go +      Refresh  s -> modifyIORef conf (\c -> c { refresh  = readInt s c refresh }) >> go +      SepChar  s -> modifyIORef conf (\c -> c { sepChar  = s                   }) >> go +      Template s -> modifyIORef conf (\c -> c { template = s                   }) >> go        Commands s -> case readCom s of                        Right x -> modifyIORef conf (\c -> c { commands = x })>> go  -                      Left e -> putStr (e ++ usage) >> exitWith (ExitFailure 1) +                      Left e  -> putStr (e ++ usage) >> exitWith (ExitFailure 1)      where readCom str =                case readStr str of  	        [x] -> Right x @@ -153,4 +153,4 @@ doOpts conf (o:oo) =  	        _  -> f c            readStr str =                [x | (x,t) <- reads str, ("","") <- lex t] -          go = doOpts conf oo
\ No newline at end of file +          go = doOpts conf oo | 
