From 3fc127ba347874825235ec285586559ac52cf2c4 Mon Sep 17 00:00:00 2001 From: Logan Fick Date: Fri, 19 Jul 2024 16:07:45 -0400 Subject: [PATCH] Adjust CleanupDirectory function to support tmpfs mounts. (#3818) * Refactored directory cleanup function to remove contents instead of recreating directory. * Fixed regression by ensuring directory cleanup creates directory if it does not exist. * Modified errors in directory cleanup function to provide more information. * Resolved use of deprecated package in directory cleanup function. * Reformatted directory cleanup function. --- utils/utils.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/utils/utils.go b/utils/utils.go index 64d9566f9..3e266ae3a 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -302,14 +302,21 @@ func VerifyFFMpegPath(path string) error { return nil } -// CleanupDirectory removes the directory and makes it fresh again. Throws fatal error on failure. +// CleanupDirectory removes all contents within the directory, or creates it if it does not exist. Throws fatal error on failure. func CleanupDirectory(path string) { log.Traceln("Cleaning", path) - if err := os.RemoveAll(path); err != nil { - log.Fatalln("Unable to remove directory. Please check the ownership and permissions", err) - } if err := os.MkdirAll(path, 0o750); err != nil { - log.Fatalln("Unable to create directory. Please check the ownership and permissions", err) + log.Fatalf("Unable to create '%s'. Please check the ownership and permissions: %s\n", path, err) + } + entries, err := os.ReadDir(path) + if err != nil { + log.Fatalf("Unable to read contents of '%s'. Please check the ownership and permissions: %s\n", path, err) + } + for _, entry := range entries { + entryPath := filepath.Join(path, entry.Name()) + if err := os.RemoveAll(entryPath); err != nil { + log.Fatalf("Unable to remove file or directory contained in '%s'. Please check the ownership and permissions: %s\n", path, err) + } } }