Cthulhu should now work no matter where it gets installed.
This commit is contained in:
@@ -48,12 +48,32 @@ def setup_paths():
|
||||
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')
|
||||
elif currentDir.startswith('/usr/local'):
|
||||
# /usr/local installation
|
||||
prefix = '/usr/local'
|
||||
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')
|
||||
|
||||
# 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')
|
||||
|
||||
sys.path.insert(1, pythondir)
|
||||
|
Reference in New Issue
Block a user