@@ -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,11 @@ type SubServerStatus struct {
2428}
2529
2630// newSubServerStatus constructs a new SubServerStatus.
27- func newSubServerStatus () * SubServerStatus {
31+ func newSubServerStatus (disabled bool ,
32+ opts ... SubServerOption ) * SubServerStatus {
33+
2834 return & SubServerStatus {
29- Disabled : true ,
35+ Disabled : disabled ,
3036 }
3137}
3238
@@ -73,21 +79,28 @@ func (s *Manager) SubServerStatus(_ context.Context,
7379
7480// RegisterSubServer will create a new sub-server entry for the Manager to
7581// keep track of.
76- func (s * Manager ) RegisterSubServer (name string ) {
82+ func (s * Manager ) RegisterSubServer (name string , opts ... SubServerOption ) {
7783 s .mu .RLock ()
7884 defer s .mu .RUnlock ()
7985
80- s .subServers [ name ] = newSubServerStatus ( )
86+ s .registerSubServerUnsafe ( name , true , opts ... )
8187}
8288
8389// RegisterAndEnableSubServer will create a new sub-server entry for the
8490// Manager to keep track of and will set it as enabled.
85- func (s * Manager ) RegisterAndEnableSubServer (name string ) {
91+ func (s * Manager ) RegisterAndEnableSubServer (name string ,
92+ opts ... SubServerOption ) {
93+
8694 s .mu .RLock ()
8795 defer s .mu .RUnlock ()
8896
89- ss := newSubServerStatus ()
90- ss .Disabled = false
97+ s .registerSubServerUnsafe (name , false , opts ... )
98+ }
99+
100+ func (s * Manager ) registerSubServerUnsafe (name string , disabled bool ,
101+ opts ... SubServerOption ) {
102+
103+ ss := newSubServerStatus (disabled , opts ... )
91104
92105 s .subServers [name ] = ss
93106}
0 commit comments