Initial check-in
[darcs-mirror-ipatch.git] / ipatch.hs
1 import System.Environment ( getArgs )
2 import System.IO ( hSetBinaryMode, stdin, stdout )
3
4 import Darcs.Flags ( DarcsFlag(Verbose) )
5 import Darcs.RunCommand ( runTheCommand )
6
7 import Version ( version, context )
8 import Help
9     ( commandControlList,
10       helpCmd,
11       listAvailableCommands,
12       printVersion )
13
14 main = do
15   argv <- getArgs
16   case argv of
17     []                  -> printVersion >> helpCmd [] []
18     ["-h"]              -> helpCmd [] []
19     ["--help"]          -> helpCmd [] []
20     ["--overview"]      -> helpCmd [Verbose] []
21     ["--commands"]      -> listAvailableCommands
22     ["-v"]              -> putStrLn version
23     ["--version"]       -> putStrLn version
24     ["--exact-version"] -> do
25               --putStrLn $ "darcs compiled on "++__DATE__++", at "++__TIME__
26               putStrLn context
27     _ -> do
28       hSetBinaryMode stdin True
29       hSetBinaryMode stdout True
30       runTheCommand commandControlList (head argv) (tail argv)