diff options
Diffstat (limited to 'utils/remote-iserv/src/Cli.hs')
-rw-r--r-- | utils/remote-iserv/src/Cli.hs | 30 |
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 + |