package commands import ( "encoding/json" "fmt" "os" "path/filepath" "github.com/zmb3/spotify/v2" ) func (c *Commander) ListDevices() error { devices, err := c.Client().PlayerDevices(c.Context) if err != nil { return err } return PrintDevices(devices) } func PrintDevices(devices []spotify.PlayerDevice) error { out, err := json.MarshalIndent(devices, "", " ") if err != nil { return err } fmt.Println(string(out)) return nil } func (c *Commander) SetDevice(device spotify.ID) error { err := c.Client().TransferPlayback(c.Context, device, true) if err != nil { return err } devices, err := c.Client().PlayerDevices(c.Context) if err != nil { return err } for _, d := range devices { if d.ID == device { out, err := json.MarshalIndent(d, "", " ") if err != nil { return err } configDir, _ := os.UserConfigDir() err = os.WriteFile(filepath.Join(configDir, "gspot/device.json"), out, 0o600) if err != nil { return err } return nil } } return fmt.Errorf("device not found") }