diff --git a/src/cthulhu.py b/src/cthulhu.py index 7943f31..07eb7af 100644 --- a/src/cthulhu.py +++ b/src/cthulhu.py @@ -42,19 +42,25 @@ def setup_paths(): # Running from source directory sys.path.insert(0, os.path.dirname(currentDir)) pythondir = currentDir + datadir = currentDir else: - # Running installed - sys.prefix = '/usr' - pythondir = os.path.join(sys.prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') + # Running installed - determine if local or system based on actual path + if currentDir.startswith(os.path.expanduser('~/.local')): + # Local installation (~/.local/bin/cthulhu) + prefix = os.path.expanduser('~/.local') + pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') + datadir = os.path.join(prefix, 'share', 'cthulhu') + else: + # System installation (/usr/bin/cthulhu) + prefix = '/usr' + pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') + datadir = os.path.join(prefix, 'share', 'cthulhu') sys.path.insert(1, pythondir) # Set environment variables for resource paths if 'CTHULHU_DATA_DIR' not in os.environ: - if os.path.exists(os.path.join(currentDir, 'plugins')): - os.environ['CTHULHU_DATA_DIR'] = currentDir - else: - os.environ['CTHULHU_DATA_DIR'] = os.path.join(sys.prefix, 'share', 'cthulhu') + os.environ['CTHULHU_DATA_DIR'] = datadir # Set up paths before importing Cthulhu modules setup_paths()