fix(jukebox): use a tmp dir instead of file for mpv sock

closes #266
fixes #265

Release-As: 0.15.1
This commit is contained in:
sentriz
2022-12-08 14:30:23 +00:00
parent 6c8f6b3299
commit 4280700621

View File

@@ -5,6 +5,7 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"path/filepath"
"time" "time"
"github.com/gorilla/mux" "github.com/gorilla/mux"
@@ -355,15 +356,16 @@ func (s *Server) StartScanWatcher() (FuncExecute, FuncInterrupt) {
} }
func (s *Server) StartJukebox(mpvExtraArgs []string) (FuncExecute, FuncInterrupt) { func (s *Server) StartJukebox(mpvExtraArgs []string) (FuncExecute, FuncInterrupt) {
var sockFile *os.File var tempDir string
return func() error { return func() error {
log.Printf("starting job 'jukebox'\n") log.Printf("starting job 'jukebox'\n")
var err error var err error
sockFile, err = os.CreateTemp("", "gonic-jukebox-*.sock") tempDir, err = os.MkdirTemp("", "gonic-jukebox-*")
if err != nil { if err != nil {
return fmt.Errorf("create tmp sock file: %w", err) return fmt.Errorf("create tmp sock file: %w", err)
} }
if err := s.jukebox.Start(sockFile.Name(), mpvExtraArgs); err != nil { sockPath := filepath.Join(tempDir, "sock")
if err := s.jukebox.Start(sockPath, mpvExtraArgs); err != nil {
return fmt.Errorf("start jukebox: %w", err) return fmt.Errorf("start jukebox: %w", err)
} }
if err := s.jukebox.Wait(); err != nil { if err := s.jukebox.Wait(); err != nil {
@@ -375,8 +377,7 @@ func (s *Server) StartJukebox(mpvExtraArgs []string) (FuncExecute, FuncInterrupt
if err := s.jukebox.Quit(); err != nil { if err := s.jukebox.Quit(); err != nil {
log.Printf("error quitting jukebox: %v", err) log.Printf("error quitting jukebox: %v", err)
} }
_ = sockFile.Close() _ = os.RemoveAll(tempDir)
_ = os.Remove(sockFile.Name())
} }
} }