Move `TempFileName` to `utils`

This commit is contained in:
Deluan 2024-02-17 18:19:51 -05:00 committed by Deluan Quintão
parent 6eb13c9f79
commit fa72aaa462
4 changed files with 16 additions and 13 deletions

View File

@ -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)
}

View File

@ -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)

View File

@ -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())

12
utils/files.go Normal file
View File

@ -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)
}