Files
Ian Denhardt f569041319 Add examples from the tutorial to the examples/ directory.
This will be more handy, and it also makes sure they actually build
(provided we remember to sync them -- it would be good to automate
that). This caught the regressions fixed in the previous two commits.
2019-01-13 19:25:16 -05:00

49 lines
1.7 KiB
Haskell

module Main (main) where
import qualified Examples.Rpc.CalculatorClient
import qualified Examples.Rpc.CalculatorServer
import qualified Examples.Rpc.EchoClient
import qualified Examples.Rpc.EchoServer
import qualified Examples.Serialization.HighLevel.Read
import qualified Examples.Serialization.HighLevel.Write
import qualified Examples.Serialization.LowLevel.Read
import qualified Examples.Serialization.LowLevel.Write
import Data.List (intercalate)
import System.Environment (getArgs)
import System.Exit (exitFailure)
import System.IO (hPutStrLn, stderr)
main :: IO ()
main = do
args <- getArgs
case args of
["calculator-client"] -> Examples.Rpc.CalculatorClient.main
["calculator-server"] -> Examples.Rpc.CalculatorServer.main
["echo-client"] -> Examples.Rpc.EchoClient.main
["echo-server"] -> Examples.Rpc.EchoServer.main
["highlevel-read"] -> Examples.Serialization.HighLevel.Read.main
["highlevel-write"] -> Examples.Serialization.HighLevel.Write.main
["lowlevel-read"] -> Examples.Serialization.LowLevel.Read.main
["lowlevel-write"] -> Examples.Serialization.LowLevel.Write.main
_ -> usageErr
usageErr :: IO ()
usageErr = do
hPutStrLn
stderr
("Usage: run-capnp-example ( "
++ intercalate " | "
[ "calculator-client"
, "calculator-server"
, "echo-client"
, "echo-server"
, "highlevel-read"
, "highlevel-write"
, "lowlevel-read"
, "lowlevel-write"
]
++ " )"
)
exitFailure