src/cm/utils/system.py
author rbernard
Fri, 05 Feb 2010 18:43:58 +0100
changeset 154 8cb89c153140
parent 0 40c8f766c9b8
permissions -rw-r--r--
bug fix: removed \r in textversion's content because of a comment position bug in pre_edit. Added a save function to TextVersionManager to do so. Also removed cleaning \r before computing diffs because it should not be necessary anymore.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
# taken from plone
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
import os
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
bin_search_path = [
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
    '/usr/bin',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    '/usr/local/bin',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
    ]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
class MissingBinary(Exception): pass
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
def bin_search(binary):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
    """search the bin_search_path  for a given binary
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
    returning its fullname or None"""
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
    result = None
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
    mode   = os.R_OK | os.X_OK
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
    for p in bin_search_path:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
        path = os.path.join(p, binary)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
        if os.access(path, mode) == 1:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
            result = path
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
            break
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
    else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        raise MissingBinary('Unable to find binary "%s"' % binary)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
    return result