{-
hugs -P:src src/Main.hs
-}
{-
hugs
:load Graphics.HGL.Utils
:browse Graphics.HGL.Utils
-}
module Main where
import qualified GraphicDemo as G
import qualified Sierpinski as S
import qualified Locomotive as L
import System.Environment (getArgs, )
import System.Exit (exitWith, ExitCode(..), )
import Control.Monad (when, )
demos :: [(String, IO ())]
demos =
("text", G.textAnim) :
("triangle", G.dreieck) :
("17angle", G.siebzehneck) :
("spiral", G.spirale) :
("double-spiral", G.doppelSpirale) :
("rotating-spiral", G.spiraleAnim) :
("lissajous", G.lissajous) :
("rotating-lissajous", G.lissajousAnim) :
("rotating-star", G.sternAnim) :
("star-circle", G.sternenkreisAnim) :
("locomotive-0", L.squareWheelAnim) :
("locomotive-1", L.acentricAnim) :
("locomotive-2", L.asymmetricAnim) :
("locomotive-3", L.bigSmallAnim) :
("sierpinski", S.demo) :
[]
main :: IO ()
main =
do args <- getArgs
when (null args)
(putStrLn "no demo name given" >>
exitWith ExitSuccess)
when (args == ["--list"])
(mapM_ (putStrLn . fst) demos >>
exitWith ExitSuccess)
mapM_
(\demo ->
maybe (putStrLn $ "unkown demo: " ++ demo) id $
lookup demo demos)
args