From d84a3e4635787049767fb198a4b2273d4927c5d5 Mon Sep 17 00:00:00 2001 From: ChuckBuilds <33324927+ChuckBuilds@users.noreply.github.com> Date: Fri, 18 Apr 2025 19:58:25 -0500 Subject: [PATCH] Fix cache directory permissions and logger initialization --- src/cache_manager.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/cache_manager.py b/src/cache_manager.py index 29d01140..69b38719 100644 --- a/src/cache_manager.py +++ b/src/cache_manager.py @@ -9,14 +9,20 @@ import stat class CacheManager: def __init__(self, cache_dir: str = "cache"): + self.logger = logging.getLogger(__name__) self.cache_dir = cache_dir self._ensure_cache_dir() - self.logger = logging.getLogger(__name__) def _ensure_cache_dir(self) -> None: """Ensure the cache directory exists with proper permissions.""" if not os.path.exists(self.cache_dir): try: + # Try to create in user's home directory if current directory fails + if not os.access(os.getcwd(), os.W_OK): + home_dir = os.path.expanduser("~") + self.cache_dir = os.path.join(home_dir, ".ledmatrix_cache") + self.logger.info(f"Using cache directory in home: {self.cache_dir}") + # Create directory with 755 permissions (rwxr-xr-x) os.makedirs(self.cache_dir, mode=0o755, exist_ok=True) @@ -32,8 +38,14 @@ class CacheManager: self.logger.info(f"Changed cache directory ownership to {real_user}") except Exception as e: self.logger.error(f"Error setting up cache directory: {e}") - # Fall back to current directory if we can't create the cache directory - self.cache_dir = "." + # Fall back to /tmp if all else fails + self.cache_dir = os.path.join("/tmp", "ledmatrix_cache") + try: + os.makedirs(self.cache_dir, mode=0o755, exist_ok=True) + self.logger.info(f"Using temporary cache directory: {self.cache_dir}") + except Exception as e: + self.logger.error(f"Failed to create temporary cache directory: {e}") + raise def _get_cache_path(self, data_type: str) -> str: """Get the path for a specific cache file."""