mirror of https://github.com/voidlizard/hbs2
default config/default tcp/default key
This commit is contained in:
parent
ed6a484f50
commit
dc33ed75c5
|
@ -9,6 +9,10 @@ module PeerConfig
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import HBS2.Prelude.Plated
|
import HBS2.Prelude.Plated
|
||||||
|
import HBS2.Base58
|
||||||
|
import HBS2.Net.Proto.Types
|
||||||
|
import HBS2.Net.Auth.Credentials
|
||||||
|
import HBS2.Net.Proto.Definition()
|
||||||
import HBS2.System.Logger.Simple
|
import HBS2.System.Logger.Simple
|
||||||
|
|
||||||
import Data.Config.Suckless.Syntax
|
import Data.Config.Suckless.Syntax
|
||||||
|
@ -90,7 +94,7 @@ defConfigData :: String
|
||||||
defConfigData = [qc|
|
defConfigData = [qc|
|
||||||
|
|
||||||
listen "0.0.0.0:7351"
|
listen "0.0.0.0:7351"
|
||||||
rpc "127.0.0.1:13331"
|
listen-tcp "0.0.0.0:10351"
|
||||||
|
|
||||||
; default storage is $HOME/.local/share/hbs2
|
; default storage is $HOME/.local/share/hbs2
|
||||||
; storage "./storage"
|
; storage "./storage"
|
||||||
|
@ -101,6 +105,7 @@ rpc "127.0.0.1:13331"
|
||||||
|
|
||||||
peerConfigInit :: MonadIO m => Maybe FilePath -> m ()
|
peerConfigInit :: MonadIO m => Maybe FilePath -> m ()
|
||||||
peerConfigInit mbfp = liftIO do
|
peerConfigInit mbfp = liftIO do
|
||||||
|
|
||||||
debug $ "peerConfigInit" <+> pretty mbfp
|
debug $ "peerConfigInit" <+> pretty mbfp
|
||||||
|
|
||||||
defDir <- peerConfigDefault <&> takeDirectory
|
defDir <- peerConfigDefault <&> takeDirectory
|
||||||
|
@ -114,12 +119,23 @@ peerConfigInit mbfp = liftIO do
|
||||||
here <- liftIO $ doesFileExist conf
|
here <- liftIO $ doesFileExist conf
|
||||||
|
|
||||||
unless here do
|
unless here do
|
||||||
appendFile (dir</>cfgName) ";; hbs2-peer config file"
|
let cfgPath = dir</>cfgName
|
||||||
appendFile (dir</>cfgName) defConfigData
|
appendFile cfgPath ";; hbs2-peer config file"
|
||||||
|
appendFile cfgPath defConfigData
|
||||||
|
|
||||||
|
cred0 <- newCredentials @HBS2Basic
|
||||||
|
let keyname = "default.key"
|
||||||
|
let keypath = dir</>keyname
|
||||||
|
|
||||||
|
khere <- doesFileExist keypath
|
||||||
|
|
||||||
|
unless khere do
|
||||||
|
writeFile keypath (show $ pretty (AsCredFile $ AsBase58 cred0))
|
||||||
|
appendFile cfgPath [qc|key "./default.key"|]
|
||||||
|
appendFile cfgPath ""
|
||||||
|
|
||||||
peerConfDef :: String
|
peerConfDef :: String
|
||||||
peerConfDef = [qc|
|
peerConfDef = [qc|
|
||||||
download-log "./download-log"
|
|
||||||
|]
|
|]
|
||||||
|
|
||||||
rpcSoDef :: FilePath
|
rpcSoDef :: FilePath
|
||||||
|
|
|
@ -127,12 +127,6 @@ instance Exception GoAgainException
|
||||||
defStorageThreads :: Integral a => a
|
defStorageThreads :: Integral a => a
|
||||||
defStorageThreads = 4
|
defStorageThreads = 4
|
||||||
|
|
||||||
defListenUDP :: String
|
|
||||||
defListenUDP = "0.0.0.0:7351"
|
|
||||||
|
|
||||||
defRpcUDP :: String
|
|
||||||
defRpcUDP = "localhost:13331"
|
|
||||||
|
|
||||||
defLocalMulticast :: String
|
defLocalMulticast :: String
|
||||||
defLocalMulticast = "239.192.152.145:10153"
|
defLocalMulticast = "239.192.152.145:10153"
|
||||||
|
|
||||||
|
@ -177,7 +171,6 @@ data PeerOpts =
|
||||||
PeerOpts
|
PeerOpts
|
||||||
{ _storage :: Maybe StoragePrefix
|
{ _storage :: Maybe StoragePrefix
|
||||||
, _listenOn :: Maybe String
|
, _listenOn :: Maybe String
|
||||||
, _listenRpc :: Maybe String
|
|
||||||
, _peerCredFile :: Maybe FilePath
|
, _peerCredFile :: Maybe FilePath
|
||||||
, _peerConfig :: Maybe FilePath
|
, _peerConfig :: Maybe FilePath
|
||||||
, _peerRespawn :: Bool
|
, _peerRespawn :: Bool
|
||||||
|
@ -231,7 +224,8 @@ runCLI = do
|
||||||
(,) <$> ( GOpts <$> switch (long "debug" <> short 'd' <> help "debug mode on")
|
(,) <$> ( GOpts <$> switch (long "debug" <> short 'd' <> help "debug mode on")
|
||||||
<*> switch (long "trace" <> help "trace on" )
|
<*> switch (long "trace" <> help "trace on" )
|
||||||
)
|
)
|
||||||
<*> hsubparser ( command "init" (info pInit (progDesc "creates default config"))
|
<*> hsubparser (
|
||||||
|
command "init" (info pInit (progDesc "creates default config"))
|
||||||
<> command "run" (info pRun (progDesc "run peer"))
|
<> command "run" (info pRun (progDesc "run peer"))
|
||||||
<> command "poke" (info pPoke (progDesc "poke peer by rpc"))
|
<> command "poke" (info pPoke (progDesc "poke peer by rpc"))
|
||||||
<> command "die" (info pDie (progDesc "die cmd"))
|
<> command "die" (info pDie (progDesc "die cmd"))
|
||||||
|
@ -257,8 +251,6 @@ runCLI = do
|
||||||
l <- optional $ strOption ( short 'l' <> long "listen"
|
l <- optional $ strOption ( short 'l' <> long "listen"
|
||||||
<> help "addr:port" )
|
<> help "addr:port" )
|
||||||
|
|
||||||
r <- optional rpcOpt
|
|
||||||
|
|
||||||
k <- optional $ strOption ( short 'k' <> long "key"
|
k <- optional $ strOption ( short 'k' <> long "key"
|
||||||
<> help "peer keys file" )
|
<> help "peer keys file" )
|
||||||
|
|
||||||
|
@ -268,7 +260,7 @@ runCLI = do
|
||||||
<&> isNothing
|
<&> isNothing
|
||||||
|
|
||||||
-- NOTE: respawn-by-default-now
|
-- NOTE: respawn-by-default-now
|
||||||
pure $ PeerOpts pref l r k c resp
|
pure $ PeerOpts pref l k c resp
|
||||||
|
|
||||||
withOpts m g = do
|
withOpts m g = do
|
||||||
|
|
||||||
|
@ -645,7 +637,8 @@ runPeer opts = Exception.handle (\e -> myException e
|
||||||
|
|
||||||
let useSocks5 = runReader (cfgValue @PeerTcpSOCKS5) syn
|
let useSocks5 = runReader (cfgValue @PeerTcpSOCKS5) syn
|
||||||
|
|
||||||
let listenSa = view listenOn opts <|> listenConf
|
let listenSa = view listenOn opts <|> listenConf <|> Just "0.0.0.0:7351"
|
||||||
|
|
||||||
credFile <- pure (view peerCredFile opts <|> keyConf) `orDie` "credentials not set"
|
credFile <- pure (view peerCredFile opts <|> keyConf) `orDie` "credentials not set"
|
||||||
|
|
||||||
let pref = view storage opts <|> storConf <|> Just xdg
|
let pref = view storage opts <|> storConf <|> Just xdg
|
||||||
|
@ -746,6 +739,7 @@ runPeer opts = Exception.handle (\e -> myException e
|
||||||
tcpPoint <- runMaybeT do
|
tcpPoint <- runMaybeT do
|
||||||
|
|
||||||
addr <- toMPlus $ fromStringMay @(PeerAddr L4Proto) tcpListen
|
addr <- toMPlus $ fromStringMay @(PeerAddr L4Proto) tcpListen
|
||||||
|
<|> Just "tcp://0.0.0.0:10351"
|
||||||
|
|
||||||
let socks5 = useSocks5 >>= fromStringMay @(PeerAddr L4Proto)
|
let socks5 = useSocks5 >>= fromStringMay @(PeerAddr L4Proto)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue