func TryDeleteDirectories()

in pkg/linuxutils/linuxutils.go [32:60]


func TryDeleteDirectories(ctx *log.Context, parentDirectory string) error {
	// Check if the directory exists
	directoryFDRef, err := os.Open(parentDirectory)
	if err != nil {
		return errors.Wrap(err, "could not open parent directory")
	}

	dirEntries, err := directoryFDRef.ReadDir(0)
	if err != nil {
		return errors.Wrap(err, "could not read contents from directory")
	}

	if dirEntries != nil {
		for _, dirEntry := range dirEntries {
			if dirEntry.IsDir() {
				fullDirectoryPath := filepath.Join(parentDirectory, dirEntry.Name())
				ctx.Log("message", "trying to remove directory: "+fullDirectoryPath)
				err = os.RemoveAll(fullDirectoryPath)
				if err != nil {
					ctx.Log("warning", "could not delete directory", "error", err)
				}
			}
		}

		return nil
	}

	return err
}