From 02be353096f80279f3d112dbedf11e1d760f112a Mon Sep 17 00:00:00 2001 From: Vladimir Krutkin Date: Thu, 2 Mar 2023 23:24:13 +0300 Subject: [PATCH] Add `known-peers-file` config option --- hbs2-peer/app/PeerConfig.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hbs2-peer/app/PeerConfig.hs b/hbs2-peer/app/PeerConfig.hs index 1fc86223..b7312810 100644 --- a/hbs2-peer/app/PeerConfig.hs +++ b/hbs2-peer/app/PeerConfig.hs @@ -46,6 +46,11 @@ data PeerDownloadLogKey instance HasCfgKey PeerDownloadLogKey (Maybe String) where key = "download-log" +data PeerKnownPeersFile + +instance HasCfgKey PeerKnownPeersFile [String] where + key = "known-peers-file" + cfgName :: FilePath cfgName = "config" @@ -128,7 +133,11 @@ peerConfigRead mbfp = do confData' <- liftIO $ readFile cfgPath <&> parseTop <&> either mempty id - let confData = confData' <> either mempty id (parseTop peerConfDef) + knownPeersFiles <- mapM (liftIO . canonicalizePath . (dir )) (cfgValue @PeerKnownPeersFile $ PeerConfig confData') + + knownPeersConfData <- concat <$> mapM (\file -> liftIO $ readFile file <&> parseTop <&> either mempty id) knownPeersFiles + + let confData = confData' <> either mempty id (parseTop peerConfDef) <> knownPeersConfData -- debug $ pretty confData