]> woffs.de Git - fd/haskell-amqp-utils.git/commitdiff
data Port
authorFrank Doepper <[email protected]>
Mon, 9 Dec 2019 10:51:14 +0000 (11:51 +0100)
committerFrank Doepper <[email protected]>
Mon, 9 Dec 2019 10:51:14 +0000 (11:51 +0100)
Network/AMQP/Utils/Connection.hs
Network/AMQP/Utils/Helpers.hs
Network/AMQP/Utils/Options.hs

index c32f92aa5cfbc909b9d4c5403b261f7976106f24..43b115a90fe1a20dab43c902ab94106825c58187 100644 (file)
@@ -48,7 +48,7 @@ connect args = do
             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
         }
index 27d0f3ca2e93e48d25f623261c4a2c1a8f6693f8..e12d9478d0087b43b7a115ed99eeef21b1ce452b 100644 (file)
@@ -60,6 +60,8 @@ instance Flexprint Bool
 
 instance Flexprint Int
 
+instance Flexprint Port
+
 instance Flexprint ExitCode
 
 instance Flexprint X.SomeException
index 8f16c245668e364203e837b6d0fca09169fe7ffb..208b6f95dfd778a4599e89ee8690a9a54618ff3e 100644 (file)
@@ -10,10 +10,31 @@ import Network.AMQP.Types
 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
@@ -63,7 +84,7 @@ instance Default Args where
   def =
     Args
       "localhost"
-      5672
+      defPort
       False
       "/"
       ""
@@ -351,13 +372,13 @@ allOptions =
     , 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
don't click here