struct.go raw

   1  package config
   2  
   3  //go:generate go run ./genopts/.
   4  
   5  import (
   6  	"github.com/p9c/p9/pkg/opts/binary"
   7  	"github.com/p9c/p9/pkg/opts/cmds"
   8  	"github.com/p9c/p9/pkg/opts/duration"
   9  	"github.com/p9c/p9/pkg/opts/float"
  10  	"github.com/p9c/p9/pkg/opts/integer"
  11  	"github.com/p9c/p9/pkg/opts/list"
  12  	"github.com/p9c/p9/pkg/opts/opt"
  13  	"github.com/p9c/p9/pkg/opts/text"
  14  )
  15  
  16  // Config defines the configuration items used by pod along with the various components included in the suite
  17  type Config struct {
  18  	// ShowAll is a flag to make the json encoder explicitly define all fields and not just the ones different to the
  19  	// defaults
  20  	ShowAll bool
  21  	// Map is the same data but addressible using its name as found inside the various configuration types, the key is
  22  	// converted to lower case for CLI args
  23  	Map                    map[string]opt.Option
  24  	Commands               cmds.Commands
  25  	RunningCommand         cmds.Command
  26  	ExtraArgs              []string
  27  	FoundArgs              []string
  28  	AddCheckpoints         *list.Opt
  29  	AddPeers               *list.Opt
  30  	AddrIndex              *binary.Opt
  31  	AutoListen             *binary.Opt
  32  	AutoPorts              *binary.Opt
  33  	BanDuration            *duration.Opt
  34  	BanThreshold           *integer.Opt
  35  	BlockMaxSize           *integer.Opt
  36  	BlockMaxWeight         *integer.Opt
  37  	BlockMinSize           *integer.Opt
  38  	BlockMinWeight         *integer.Opt
  39  	BlockPrioritySize      *integer.Opt
  40  	BlocksOnly             *binary.Opt
  41  	CAFile                 *text.Opt
  42  	CPUProfile             *text.Opt
  43  	ClientTLS              *binary.Opt
  44  	ConfigFile             *text.Opt
  45  	ConnectPeers           *list.Opt
  46  	Controller             *binary.Opt
  47  	DarkTheme              *binary.Opt
  48  	DataDir                *text.Opt
  49  	DbType                 *text.Opt
  50  	DisableBanning         *binary.Opt
  51  	DisableCheckpoints     *binary.Opt
  52  	DisableDNSSeed         *binary.Opt
  53  	DisableListen          *binary.Opt
  54  	DisableRPC             *binary.Opt
  55  	Discovery              *binary.Opt
  56  	ExternalIPs            *list.Opt
  57  	FreeTxRelayLimit       *float.Opt
  58  	GenThreads             *integer.Opt
  59  	Generate               *binary.Opt
  60  	Hilite                 *list.Opt
  61  	LAN                    *binary.Opt
  62  	LimitPass              *text.Opt
  63  	LimitUser              *text.Opt
  64  	Locale                 *text.Opt
  65  	LogDir                 *text.Opt
  66  	LogFilter              *list.Opt
  67  	LogLevel               *text.Opt
  68  	MaxOrphanTxs           *integer.Opt
  69  	MaxPeers               *integer.Opt
  70  	MinRelayTxFee          *float.Opt
  71  	MulticastPass          *text.Opt
  72  	Network                *text.Opt
  73  	NoCFilters             *binary.Opt
  74  	NoInitialLoad          *binary.Opt
  75  	NoPeerBloomFilters     *binary.Opt
  76  	NoRelayPriority        *binary.Opt
  77  	NodeOff                *binary.Opt
  78  	OneTimeTLSKey          *binary.Opt
  79  	OnionEnabled           *binary.Opt
  80  	OnionProxyAddress      *text.Opt
  81  	OnionProxyPass         *text.Opt
  82  	OnionProxyUser         *text.Opt
  83  	P2PConnect             *list.Opt
  84  	P2PListeners           *list.Opt
  85  	Password               *text.Opt
  86  	PipeLog                *binary.Opt
  87  	Profile                *text.Opt
  88  	ProxyAddress           *text.Opt
  89  	ProxyPass              *text.Opt
  90  	ProxyUser              *text.Opt
  91  	RPCCert                *text.Opt
  92  	RPCConnect             *text.Opt
  93  	RPCKey                 *text.Opt
  94  	RPCListeners           *list.Opt
  95  	RPCMaxClients          *integer.Opt
  96  	RPCMaxConcurrentReqs   *integer.Opt
  97  	RPCMaxWebsockets       *integer.Opt
  98  	RPCQuirks              *binary.Opt
  99  	RejectNonStd           *binary.Opt
 100  	RelayNonStd            *binary.Opt
 101  	RunAsService           *binary.Opt
 102  	Save                   *binary.Opt
 103  	ServerTLS              *binary.Opt
 104  	SigCacheMaxSize        *integer.Opt
 105  	Solo                   *binary.Opt
 106  	TLSSkipVerify          *binary.Opt
 107  	TorIsolation           *binary.Opt
 108  	TrickleInterval        *duration.Opt
 109  	TxIndex                *binary.Opt
 110  	UPNP                   *binary.Opt
 111  	UUID                   *integer.Opt
 112  	UseWallet              *binary.Opt
 113  	UserAgentComments      *list.Opt
 114  	Username               *text.Opt
 115  	WalletFile             *text.Opt
 116  	WalletOff              *binary.Opt
 117  	WalletPass             *text.Opt
 118  	WalletRPCListeners     *list.Opt
 119  	WalletRPCMaxClients    *integer.Opt
 120  	WalletRPCMaxWebsockets *integer.Opt
 121  	WalletServer           *text.Opt
 122  	Whitelists             *list.Opt
 123  }
 124