git.iko.soy/typeable/connexpay
on master help sign in
Allow using proxy in the tool.
commit05635b3eb5ad914d5bf022873ffa7499292803f6 authorNick <nick@typeable.io> dateFri 22 Sep 2023, 11:47 (3 years ago) parent8f541e0
1 file changed+11−2
src/Tool.hs+11−2
src/Tool.hs+11−2
@@ -6,12 +6,15 @@ import Control.Monad
66import Control.Monad.IO.Class
77import Data.Aeson
88import Data.Fixed
9+import Data.Maybe (fromMaybe)
910import Data.Money
1011import Data.Text (Text)
12+import Data.Text.Encoding qualified as Text
1113import Data.Text.IO qualified as Text
1214import Data.UUID
1315import Data.Yaml (decodeFileThrow)
1416import GHC.Generics
17+import Network.HTTP.Client
1518import Network.HTTP.Client.TLS
1619import Options.Applicative
1720import Web.Connexpay
@@ -20,6 +23,8 @@ data Config = Config { login :: Text
2023 , password :: Text
2124 , host :: Text
2225 , device_guid :: UUID
26+ , proxy_host :: Maybe Text
27+ , proxy_port :: Maybe Word
2328 } deriving Generic
2429
2530instance FromJSON Config
@@ -50,14 +55,18 @@ cmdParser = CmdLine <$> strOption (short 'c' <> metavar "FILE" <> help "Configur
5055
5156
5257
53−
5458writeLog :: Text -> IO ()
5559writeLog msg = Text.putStrLn ("Connexpay log: " <> msg)
5660
5761main :: IO ()
5862main = do cmdLine <- execParser (info cmdParser mempty)
5963 cnf :: Config <- decodeFileThrow cmdLine.configPath
60− mgr <- newTlsManager
64+ mgr <- fromMaybe newTlsManager
65+ $ do host <- cnf.proxy_host
66+ port <- cnf.proxy_port
67+ let proxy = useProxy (Proxy (Text.encodeUtf8 host) (fromIntegral port))
68+ s = managerSetProxy proxy defaultManagerSettings
69+ return (newManager s)
6170 res <- initConnexpay writeLog mgr cnf.device_guid cnf.host cnf.login cnf.password
6271 case res of
6372 Left err -> putStrLn ("Error: " <> show err)