]> git.rkrishnan.org Git - functorrent.git/blob - src/Main.hs
parse and print Metainfo
[functorrent.git] / src / Main.hs
1 module Main where
2
3 import System.Environment (getArgs)
4 import qualified Data.ByteString.Char8 as BC
5 import qualified Bencode as Benc
6 import qualified Metainfo as MInfo
7 import Text.ParserCombinators.Parsec
8
9 printError :: ParseError -> IO ()
10 printError e = putStrLn "parse error"
11
12 main :: IO ()
13 main = do
14   args <- getArgs
15   torrentStr <- BC.readFile (head args)
16   case (Benc.decode torrentStr) of
17    Right d -> case (MInfo.mkMetaInfo d) of
18                Nothing -> putStrLn "parse error"
19                Just m -> putStrLn (show m)
20    Left e -> printError e
21   putStrLn "done"