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