Files
varia-go/tasks/clean-mov-files.go
2025-10-27 22:51:42 +01:00

44 lines
1.0 KiB
Go

package tasks
import (
"fmt"
"os"
"path/filepath"
"varia-go/shared"
)
type CleanMovFilesTask struct{}
func (t *CleanMovFilesTask) Run(folderPath string) error {
return filepath.Walk(folderPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// Check if the file has a .mov extension
if filepath.Ext(info.Name()) == ".mov" {
baseName := shared.FileNameWithoutExt(info.Name())
heicPath := filepath.Join(filepath.Dir(path), baseName+".heic")
jpgPath := filepath.Join(filepath.Dir(path), baseName+".jpg")
// Check if corresponding .heic or .jpg file exists
heicExists, err := shared.FileExists(heicPath)
if err != nil {
return err
}
jpgExists, err := shared.FileExists(jpgPath)
if err != nil {
return err
}
fmt.Println(baseName)
if heicExists || jpgExists {
fmt.Printf("Sending to Recycle Bin: %s\n", path)
if err := shared.MoveToTrash(path); err != nil {
return fmt.Errorf("failed to move to Recycle Bin: %w", err)
}
}
}
return nil
})
}