diff options
author | Moritz Angermann <moritz.angermann@gmail.com> | 2018-03-07 13:38:09 +0800 |
---|---|---|
committer | Moritz Angermann <moritz.angermann@gmail.com> | 2018-03-13 12:10:01 +0800 |
commit | 6faf0e6650bc9b8217d541be32f01dc2b092ab8e (patch) | |
tree | 387ac238bb0f0bec3800af263c7376bd3eda2f05 | |
parent | a334af8e31319b0572c0d8d7f89088bc893ae9c4 (diff) | |
download | haskell-6faf0e6650bc9b8217d541be32f01dc2b092ab8e.tar.gz |
Adds iserv-slave (via CLI)
-rw-r--r-- | utils/iserv-slave/cabal.project | 4 | ||||
-rw-r--r-- | utils/iserv-slave/iserv-slave.cabal | 20 | ||||
-rw-r--r-- | utils/iserv-slave/src/Cli.hs | 30 |
3 files changed, 54 insertions, 0 deletions
diff --git a/utils/iserv-slave/cabal.project b/utils/iserv-slave/cabal.project new file mode 100644 index 0000000000..2e6cd12dc9 --- /dev/null +++ b/utils/iserv-slave/cabal.project @@ -0,0 +1,4 @@ +packages: . ../../libraries/libiserv + +package libiserv + flags: +network diff --git a/utils/iserv-slave/iserv-slave.cabal b/utils/iserv-slave/iserv-slave.cabal new file mode 100644 index 0000000000..66a2a323f4 --- /dev/null +++ b/utils/iserv-slave/iserv-slave.cabal @@ -0,0 +1,20 @@ +Name: iserv-slave +Version: 8.5 +Copyright: XXX +License: BSD3 +-- XXX License-File: LICENSE +Author: XXX +Maintainer: XXX +Synopsis: iserv allows GHC to delegate Tempalte Haskell computations +Description: +Category: Development +build-type: Simple +cabal-version: >=1.10 + +Executable iserv-slave + Default-Language: Haskell2010 + Main-Is: Cli.hs + Hs-Source-Dirs: src + Build-Depends: + base >= 4 && < 5, + libiserv == 8.5 diff --git a/utils/iserv-slave/src/Cli.hs b/utils/iserv-slave/src/Cli.hs new file mode 100644 index 0000000000..8a3a34f9c4 --- /dev/null +++ b/utils/iserv-slave/src/Cli.hs @@ -0,0 +1,30 @@ +module Main where + +import System.Environment (getProgName, getArgs) +import System.Exit (die) +import Remote.Slave (startSlave') + +main :: IO () +main = getArgs >>= startSlave + +dieWithUsage :: IO a +dieWithUsage = do + prog <- getProgName + die $ prog ++ ": " ++ msg + where + msg = "usage: iserv-slave /path/to/storage PORT [-v]" + +startSlave :: [String] -> IO () +startSlave args0 + | "--help" `elem` args0 = dieWithUsage + | otherwise = do + (path, port, rest) <- case args0 of + arg0:arg1:rest -> return (arg0, read arg1, rest) + _ -> dieWithUsage + verbose <- case rest of + ["-v"] -> return True + [] -> return False + _ -> dieWithUsage + + startSlave' verbose path port + |