mirror of
https://github.com/joshuarubin/go-sway
synced 2024-11-22 21:11:59 +01:00
add ability to set sway socket explicitly
This commit is contained in:
parent
b11e8903a3
commit
06cea6451d
23
client.go
23
client.go
@ -62,11 +62,30 @@ type Client interface {
|
|||||||
GetSeats(context.Context) ([]Seat, error)
|
GetSeats(context.Context) ([]Seat, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Option can be passed to New to specify runtime configuration settings
|
||||||
|
type Option func(*client)
|
||||||
|
|
||||||
|
// WithSocketPath explicitly sets the sway socket path so it isn't read from
|
||||||
|
// $SWAYSOCK
|
||||||
|
func WithSocketPath(socketPath string) Option {
|
||||||
|
return func(c *client) {
|
||||||
|
c.path = socketPath
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// New returns a Client configured to connect to $SWAYSOCK
|
// New returns a Client configured to connect to $SWAYSOCK
|
||||||
func New(ctx context.Context) (_ Client, err error) {
|
func New(ctx context.Context, opts ...Option) (_ Client, err error) {
|
||||||
c := &client{}
|
c := &client{}
|
||||||
|
|
||||||
if c.path = strings.TrimSpace(os.Getenv("SWAYSOCK")); c.path == "" {
|
for _, opt := range opts {
|
||||||
|
opt(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.path == "" {
|
||||||
|
c.path = strings.TrimSpace(os.Getenv("SWAYSOCK"))
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.path == "" {
|
||||||
return nil, fmt.Errorf("$SWAYSOCK is empty")
|
return nil, fmt.Errorf("$SWAYSOCK is empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user