if (tls args)
then Just (TLSCustom myTLS)
else Nothing
- , coServers = [(server args, fromIntegral $ port args)]
+ , coServers = [(server args, fromIntegral $ port2int $ port args)]
, coHeartbeatDelay = fmap fromIntegral $ heartBeat args
, coName = fmap T.pack $ connectionName args
}
import Paths_amqp_utils (version)
import System.Console.GetOpt
+data Port
+ = DefaultPort Int
+ | CustomPort Int
+ deriving (Show, Eq)
+
+defPort :: Port
+defPort = DefaultPort 5672
+defPortTLS :: Port
+defPortTLS = DefaultPort 5673
+
+port2int :: Port -> Int
+port2int (DefaultPort x) = x
+port2int (CustomPort x) = x
+
+togglePortTLS :: Port -> Port
+togglePortTLS (CustomPort x) = CustomPort x
+togglePortTLS x
+ | x == defPort = defPortTLS
+ | x == defPortTLS = defPort
+ | otherwise = x
+
-- | A data type for our options
data Args = Args
{ server :: String
- , port :: Int
+ , port :: Port
, tls :: Bool
, vHost :: String
, currentExchange :: String
def =
Args
"localhost"
- 5672
+ defPort
False
"/"
""
, Option
['p']
["port"]
- (ReqArg (\s o -> o {port = read s}) "PORT")
+ (ReqArg (\s o -> o {port = CustomPort (read s)}) "PORT")
("Server Port Number (default: " ++ show (port def) ++ ")"))
, ( "akrp"
, Option
['T']
["tls"]
- (NoArg (\o -> o {tls = not (tls o)}))
+ (NoArg (\o -> o {tls = not (tls o), port = togglePortTLS (port o)}))
("Toggle TLS (default: " ++ show (tls def) ++ ")"))
, ( "akrp"
, Option