oh-my-posh/src/segment_spotify_wsl.go
bewing b8d3f5781c
fix(wsl): spotify support
If we are in a WSL environment and tasklist.exe is in our PATH, leverage
it to scan for the Spotify.exe window title. Add unit tests and a new
mock for env.isWSL
2021-10-11 09:02:51 +02:00

34 lines
737 B
Go

//go:build !darwin && !windows
package main
import (
"encoding/csv"
"strings"
)
func (s *spotify) enabled() bool {
if !s.env.isWsl() {
return false
}
tlist, err := s.env.runCommand("tasklist.exe", "/V", "/FI", "Imagename eq Spotify.exe", "/FO", "CSV", "/NH")
if err != nil || strings.HasPrefix(tlist, "INFO") {
return false
}
records, err := csv.NewReader(strings.NewReader(tlist)).ReadAll()
if err != nil || len(records) == 0 {
return false
}
for _, record := range records {
title := record[len(record)-1]
if strings.Contains(title, " - ") {
infos := strings.Split(title, " - ")
s.artist = infos[0]
s.track = strings.Join(infos[1:], " - ")
s.status = "playing"
return true
}
}
return false
}