summaryrefslogtreecommitdiff
path: root/utils/remote-iserv/src/Cli.hs
diff options
context:
space:
mode:
Diffstat (limited to 'utils/remote-iserv/src/Cli.hs')
-rw-r--r--utils/remote-iserv/src/Cli.hs30
1 files changed, 30 insertions, 0 deletions
diff --git a/utils/remote-iserv/src/Cli.hs b/utils/remote-iserv/src/Cli.hs
new file mode 100644
index 0000000000..8a3a34f9c4
--- /dev/null
+++ b/utils/remote-iserv/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
+