@@ -9,6 +9,10 @@ import (
99 "github.com/lightninglabs/lightning-terminal/litrpc"
1010)
1111
12+ // SubServerOption defines a functional option that can be used to modify the
13+ // values of a SubServerStatus's fields.
14+ type SubServerOption func (status * SubServerStatus )
15+
1216// SubServerStatus represents the status of a sub-server.
1317type SubServerStatus struct {
1418 // Disabled is true if the sub-server is available in the LiT bundle but
@@ -24,9 +28,9 @@ type SubServerStatus struct {
2428}
2529
2630// newSubServerStatus constructs a new SubServerStatus.
27- func newSubServerStatus () * SubServerStatus {
31+ func newSubServerStatus (disabled bool ) * SubServerStatus {
2832 return & SubServerStatus {
29- Disabled : true ,
33+ Disabled : disabled ,
3034 }
3135}
3236
@@ -73,21 +77,32 @@ func (s *Manager) SubServerStatus(_ context.Context,
7377
7478// RegisterSubServer will create a new sub-server entry for the Manager to
7579// keep track of.
76- func (s * Manager ) RegisterSubServer (name string ) {
80+ func (s * Manager ) RegisterSubServer (name string , opts ... SubServerOption ) {
7781 s .mu .RLock ()
7882 defer s .mu .RUnlock ()
7983
80- s .subServers [ name ] = newSubServerStatus ( )
84+ s .registerSubServerUnsafe ( name , true , opts ... )
8185}
8286
8387// RegisterAndEnableSubServer will create a new sub-server entry for the
8488// Manager to keep track of and will set it as enabled.
85- func (s * Manager ) RegisterAndEnableSubServer (name string ) {
89+ func (s * Manager ) RegisterAndEnableSubServer (name string ,
90+ opts ... SubServerOption ) {
91+
8692 s .mu .RLock ()
8793 defer s .mu .RUnlock ()
8894
89- ss := newSubServerStatus ()
90- ss .Disabled = false
95+ s .registerSubServerUnsafe (name , false , opts ... )
96+ }
97+
98+ func (s * Manager ) registerSubServerUnsafe (name string , disabled bool ,
99+ opts ... SubServerOption ) {
100+
101+ ss := newSubServerStatus (disabled )
102+
103+ for _ , o := range opts {
104+ o (ss )
105+ }
91106
92107 s .subServers [name ] = ss
93108}
0 commit comments