mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-28 11:16:37 +08:00
30 lines
728 B
Go
30 lines
728 B
Go
package service
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// transferSidecarNFO moves/copies/links the .nfo sidecar alongside its media
|
|
// using the same transfer mode, so metadata follows the organized file.
|
|
func transferSidecarNFO(srcMedia, dstMedia string, mode TransferMode) error {
|
|
src := nfoPath(srcMedia)
|
|
dst := nfoPath(dstMedia)
|
|
if src == dst {
|
|
return nil
|
|
}
|
|
if _, err := os.Stat(src); err != nil {
|
|
if os.IsNotExist(err) {
|
|
return nil
|
|
}
|
|
return err
|
|
}
|
|
if _, err := os.Stat(dst); err == nil {
|
|
return nil
|
|
}
|
|
if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil { // #nosec G301 -- sidecar media directories must remain readable by NAS/player users.
|
|
return err
|
|
}
|
|
return transferFile(src, dst, mode)
|
|
}
|