Cthulhu should now work no matter where it gets installed.
This commit is contained in:
@@ -48,13 +48,33 @@ 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')
|
|
||||||
datadir = os.path.join(prefix, 'share', 'cthulhu')
|
# 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)
|
sys.path.insert(1, pythondir)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user