Cthulhu should now work no matter where it gets installed.

This commit is contained in:
Storm Dragon
2025-08-12 03:01:33 -04:00
parent e6cee379ee
commit 287522c293

View File

@@ -48,12 +48,32 @@ def setup_paths():
if currentDir.startswith(os.path.expanduser('~/.local')): if currentDir.startswith(os.path.expanduser('~/.local')):
# Local installation (~/.local/bin/cthulhu) # Local installation (~/.local/bin/cthulhu)
prefix = os.path.expanduser('~/.local') prefix = os.path.expanduser('~/.local')
pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') elif currentDir.startswith('/usr/local'):
datadir = os.path.join(prefix, 'share', 'cthulhu') # /usr/local installation
prefix = '/usr/local'
else: else:
# System installation (/usr/bin/cthulhu) # System installation (/usr/bin/cthulhu)
prefix = '/usr' prefix = '/usr'
pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages')
# Try to find Python modules in multiple possible locations
python_version = f'python{sys.version_info.major}.{sys.version_info.minor}'
possible_pythondirs = [
os.path.join(prefix, 'lib', python_version, 'site-packages'),
os.path.join('/usr', 'lib', python_version, 'site-packages'), # System fallback
os.path.join('/usr/local', 'lib', python_version, 'site-packages') # /usr/local fallback
]
# Use the first directory that contains the cthulhu module
pythondir = None
for candidate_dir in possible_pythondirs:
if os.path.exists(os.path.join(candidate_dir, 'cthulhu', '__init__.py')):
pythondir = candidate_dir
break
if pythondir is None:
# Fallback to prefix-relative path if module not found
pythondir = os.path.join(prefix, 'lib', python_version, 'site-packages')
datadir = os.path.join(prefix, 'share', 'cthulhu') datadir = os.path.join(prefix, 'share', 'cthulhu')
sys.path.insert(1, pythondir) sys.path.insert(1, pythondir)