From fa72aaa4624b11c7c61213fb281f1d6a78e576e9 Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 17 Feb 2024 18:19:51 -0500 Subject: [PATCH] Move `TempFileName` to `utils` --- core/playback/mpv/mpv.go | 10 ---------- core/playback/mpv/track.go | 3 ++- scanner/metadata/taglib/taglib_test.go | 4 ++-- utils/files.go | 12 ++++++++++++ 4 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 utils/files.go diff --git a/core/playback/mpv/mpv.go b/core/playback/mpv/mpv.go index 957d779c..8b10c5b9 100644 --- a/core/playback/mpv/mpv.go +++ b/core/playback/mpv/mpv.go @@ -2,14 +2,11 @@ package mpv import ( "context" - "crypto/rand" - "encoding/hex" "errors" "fmt" "io" "os" "os/exec" - "path/filepath" "strings" "sync" @@ -133,10 +130,3 @@ var ( mpvPath string mpvErr error ) - -func TempFileName(prefix, suffix string) string { - randBytes := make([]byte, 16) - // we can savely ignore the return value since we're loading into a precreated, fixedsized buffer - _, _ = rand.Read(randBytes) - return filepath.Join(os.TempDir(), prefix+hex.EncodeToString(randBytes)+suffix) -} diff --git a/core/playback/mpv/track.go b/core/playback/mpv/track.go index fc012044..e0578b40 100644 --- a/core/playback/mpv/track.go +++ b/core/playback/mpv/track.go @@ -13,6 +13,7 @@ import ( "github.com/dexterlb/mpvipc" "github.com/navidrome/navidrome/log" "github.com/navidrome/navidrome/model" + "github.com/navidrome/navidrome/utils" ) type MpvTrack struct { @@ -31,7 +32,7 @@ func NewTrack(playbackDoneChannel chan bool, deviceName string, mf model.MediaFi return nil, err } - tmpSocketName := TempFileName("mpv-ctrl-", ".socket") + tmpSocketName := utils.TempFileName("mpv-ctrl-", ".socket") args := createMPVCommand(mpvComdTemplate, deviceName, mf.Path, tmpSocketName) exe, err := start(args) diff --git a/scanner/metadata/taglib/taglib_test.go b/scanner/metadata/taglib/taglib_test.go index 29d9938f..31007910 100644 --- a/scanner/metadata/taglib/taglib_test.go +++ b/scanner/metadata/taglib/taglib_test.go @@ -4,8 +4,8 @@ import ( "io/fs" "os" - "github.com/navidrome/navidrome/core/playback/mpv" "github.com/navidrome/navidrome/scanner/metadata" + "github.com/navidrome/navidrome/utils" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) @@ -181,7 +181,7 @@ var _ = Describe("Extractor", func() { // Only run permission tests if we are not root RegularUserContext("when run without root privileges", func() { BeforeEach(func() { - accessForbiddenFile = mpv.TempFileName("access_forbidden", ".mp3") + accessForbiddenFile = utils.TempFileName("access_forbidden-", ".mp3") f, err := os.OpenFile(accessForbiddenFile, os.O_WRONLY|os.O_CREATE, 0222) Expect(err).ToNot(HaveOccurred()) diff --git a/utils/files.go b/utils/files.go new file mode 100644 index 00000000..293aba94 --- /dev/null +++ b/utils/files.go @@ -0,0 +1,12 @@ +package utils + +import ( + "os" + "path/filepath" + + "github.com/google/uuid" +) + +func TempFileName(prefix, suffix string) string { + return filepath.Join(os.TempDir(), prefix+uuid.NewString()+suffix) +}