module Main where import GraphicDemo as G import System.Environment (getArgs, ) import System.Exit (exitWith, ExitCode(..), ) import Control.Monad (when, ) demos :: [(String, IO ())] demos = ("text", textAnim) : ("triangle", dreieck) : ("17angle", siebzehneck) : ("spiral", spirale) : ("double-spiral", doppelSpirale) : ("rotating-spiral", spiraleAnim) : ("lissajous", lissajous) : ("rotating-lissajous", lissajousAnim) : ("rotating-star", sternAnim) : ("star-circle", sternenkreisAnim) : ("locomotive-0", wagenAnim) : ("locomotive-1", holperAnim0) : ("locomotive-2", holperAnim1) : ("locomotive-3", holperAnim) : ("sierpinski", sierpinski) : [] 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