# FOR DEBIAN, sys.path is augmented with directories in /usr/local.
# Local addons go into /usr/local/lib/python<version>/site-packages
# (resp. /usr/local/lib/site-python), Debian addons install into
# /usr/lib/python<version>/site-packages.

import os, sys

def gensitepaths(sitedir):
    """Generate a complete list of valid paths at sitedir by handling .pth files
    and making sure each directory exists"""

    paths = []

    sitedir = os.path.abspath(sitedir)
    if os.path.isdir(sitedir):
        paths.append(sitedir)

        try:
            names = os.listdir(sitedir)
        except os.error:
            names = []

        names.sort()
        for name in names:
            if name.endswith(os.extsep + "pth"):
                fullname = os.path.join(sitedir, name)
                try:
                    f = open(fullname, "rU")
                except IOError:
                    continue
                try:
                    for line in f:
                        if line.startswith("#"):
                            continue
                        line = line.rstrip()
                        if len(line) > 0:
                            dir = os.path.abspath(os.path.join(sitedir, line))
                            if os.path.isdir(dir):
                                paths.append(dir)
                finally:
                    f.close()

    return paths


local_site_dirs = [ '/usr/local/lib/site-python', '/usr/local/lib/python2.4/site-packages' ]
before_dir = '/usr/lib/python2.4/site-packages'

for sitedir in local_site_dirs:
    if before_dir is not None and before_dir in sys.path:
        idx = sys.path.index(before_dir)
        sys.path[idx:idx] = gensitepaths(sitedir)
    else:
        sys.path.extend(gensitepaths(sitedir))

# install the apport exception handler if available
try:
    import apport_python_hook
except ImportError:
    pass
else:
    apport_python_hook.install()
