From 32516c768ec09e2a71cab5983d2c8b8ae5d92fc7 Mon Sep 17 00:00:00 2001 From: holisticode Date: Mon, 11 Dec 2017 16:56:06 -0500 Subject: cmd/swarm: add config file (#15548) This commit adds a TOML configuration option to swarm. It reuses the TOML configuration structure used in geth with swarm customized items. The commit: * Adds a "dumpconfig" command to the swarm executable which allows printing the (default) configuration to stdout, which then can be redirected to a file in order to customize it. * Adds a "--config " option to the swarm executable which will allow to load a configuration file in TOML format from the specified location in order to initialize the Swarm node The override priorities are like follows: environment variables override command line arguments override config file override default config. --- swarm/services/swap/swap.go | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'swarm/services') diff --git a/swarm/services/swap/swap.go b/swarm/services/swap/swap.go index 093892e8d..1f9b22b90 100644 --- a/swarm/services/swap/swap.go +++ b/swarm/services/swap/swap.go @@ -80,17 +80,10 @@ type PayProfile struct { lock sync.RWMutex } -func DefaultSwapParams(contract common.Address, prvkey *ecdsa.PrivateKey) *SwapParams { - pubkey := &prvkey.PublicKey +//create params with default values +func NewDefaultSwapParams() *SwapParams { return &SwapParams{ - PayProfile: &PayProfile{ - PublicKey: common.ToHex(crypto.FromECDSAPub(pubkey)), - Contract: contract, - Beneficiary: crypto.PubkeyToAddress(*pubkey), - privateKey: prvkey, - publicKey: pubkey, - owner: crypto.PubkeyToAddress(*pubkey), - }, + PayProfile: &PayProfile{}, Params: &swap.Params{ Profile: &swap.Profile{ BuyAt: buyAt, @@ -109,6 +102,21 @@ func DefaultSwapParams(contract common.Address, prvkey *ecdsa.PrivateKey) *SwapP } } +//this can only finally be set after all config options (file, cmd line, env vars) +//have been evaluated +func (self *SwapParams) Init(contract common.Address, prvkey *ecdsa.PrivateKey) { + pubkey := &prvkey.PublicKey + + self.PayProfile = &PayProfile{ + PublicKey: common.ToHex(crypto.FromECDSAPub(pubkey)), + Contract: contract, + Beneficiary: crypto.PubkeyToAddress(*pubkey), + privateKey: prvkey, + publicKey: pubkey, + owner: crypto.PubkeyToAddress(*pubkey), + } +} + // swap constructor, parameters // * global chequebook, assume deployed service and // * the balance is at buffer. -- cgit v1.2.3