skip unsupported files

This commit is contained in:
2026-04-07 20:53:18 +02:00
parent fcba178b26
commit d9590651b2
2 changed files with 18 additions and 0 deletions

View File

@@ -42,7 +42,12 @@ func Sort(dst, path string) {
os.Exit(1) os.Exit(1)
} }
// Handle single file
if !info.IsDir() { if !info.IsDir() {
if !fileSupported(path) {
slog.Error("Unsupported file format", "file", path)
os.Exit(1)
}
if err := sortSong(path, dst); err != nil { if err := sortSong(path, dst); err != nil {
slog.Error("Failed to sort single file", "file", path, "err", err) slog.Error("Failed to sort single file", "file", path, "err", err)
os.Exit(1) os.Exit(1)
@@ -50,6 +55,7 @@ func Sort(dst, path string) {
return return
} }
// Handle directory
err = filepath.WalkDir(path, func(p string, d fs.DirEntry, err error) error { err = filepath.WalkDir(path, func(p string, d fs.DirEntry, err error) error {
if err != nil { if err != nil {
slog.Error("Failed to walk path", "path", path, "file", p, "err", err) slog.Error("Failed to walk path", "path", path, "file", p, "err", err)
@@ -57,6 +63,9 @@ func Sort(dst, path string) {
} }
if !d.IsDir() { if !d.IsDir() {
if !fileSupported(p) {
return nil
}
if err := sortSong(p, dst); err != nil { if err := sortSong(p, dst); err != nil {
slog.Error("Failed to sort file", "file", p, "err", err) slog.Error("Failed to sort file", "file", p, "err", err)
return err return err

View File

@@ -9,6 +9,15 @@ import (
"strings" "strings"
) )
func fileSupported(file string) bool {
supported := map[string]bool{
".mp3": true, ".flac": true,
".m4a": true, ".ogg": true, ".dsf": true,
}
return supported[strings.ToLower(filepath.Ext(file))]
}
func sortSong(src, dst string) error { func sortSong(src, dst string) error {
m, err := ReadAudioTags(src) m, err := ReadAudioTags(src)
if err != nil { if err != nil {