def get_config_files(self, config):
     #
     # Convert to shell paths and return shell paths.
     #
     # @fixme should this use a passed in set of defaults and not
     #        not the initial set of values ?
     #
     config = path.shell(config)
     if '*' in config or '?' in config:
         print(config)
         configdir = path.dirname(config)
         configbase = path.basename(config)
         if len(configbase) == 0:
             configbase = '*'
         if not configbase.endswith('.cfg'):
             configbase = configbase + '.cfg'
         if len(configdir) == 0:
             configdir = self.macros.expand(self.defaults['_configdir'])
         configs = []
         for cp in configdir.split(':'):
             hostconfigdir = path.host(cp)
             for f in glob.glob(os.path.join(hostconfigdir, configbase)):
                 configs += path.shell(f)
     else:
         configs = [config]
     return configs
 def get_config_files(self, config):
     #
     # Convert to shell paths and return shell paths.
     #
     # @fixme should this use a passed in set of defaults and not
     #        not the initial set of values ?
     #
     config = path.shell(config)
     if '*' in config or '?' in config:
         print config
         configdir = path.dirname(config)
         configbase = path.basename(config)
         if len(configbase) == 0:
             configbase = '*'
         if not configbase.endswith('.cfg'):
             configbase = configbase + '.cfg'
         if len(configdir) == 0:
             configdir = self.macros.expand(self.defaults['_configdir'])
         configs = []
         for cp in configdir.split(':'):
             hostconfigdir = path.host(cp)
             for f in glob.glob(os.path.join(hostconfigdir, configbase)):
                 configs += path.shell(f)
     else:
         configs = [config]
     return configs
def _collect(path_, file):
    confs = []
    for root, dirs, files in os.walk(path.host(path_), topdown=True):
        for f in files:
            if f == file:
                confs += [path.shell(path.join(root, f))]
    return confs
def _collect(path_, file):
    confs = []
    for root, dirs, files in os.walk(path.host(path_), topdown = True):
        for f in files:
            if f == file:
                confs += [path.shell(path.join(root, f))]
    return confs
Exemple #5
0
                _email = '%s <%s>' % (_name, _email)
            return _email
        return None

    def head(self):
        hash = ''
        ec, output = self._run(['log', '-n', '1'])
        if ec == 0:
            l1 = output.split('\n')[0]
            if l1.startswith('commit '):
                hash = l1[len('commit '):]
        return hash


if __name__ == '__main__':
    import os.path
    import sys
    defaults = path.join(path.dirname(path.dirname(path.shell(sys.argv[0]))),
                         'defaults.mc')
    opts = options.load(sys.argv, defaults=defaults)
    g = repo('.', opts)
    print('g.git_version():', g.git_version())
    print('g.valid():', g.valid())
    print('g.submodules():', g.submodules())
    print('g.status():', g.status())
    print('g.status():', g.status(True))
    print('g.dirty():', g.dirty())
    print('g.remotes():', g.remotes())
    print('g.email():', g.email())
    print('g.head():', g.head())
Exemple #6
0
def load():
    # Default to the native Windows Python.
    uname = 'win32'
    if 'PROCESSOR_ARCHITECTURE' in os.environ:
        if os.environ['PROCESSOR_ARCHITECTURE'] == 'AMD64':
            hosttype = 'x86_64'
            machsize = '64'
        else:
            hosttype = 'i686'
            machsize = '32'
    else:
        hosttype = 'x86_64'
        machsize = '32'

    uname = 'mingw32'
    machine = 'w%s' % (machsize)

    # Set the C/C++ compilers we want to use.
    cc = '%s-%s-%s-gcc' % (hosttype, machine, uname)
    cxx = '%s-%s-%s-g++' % (hosttype, machine, uname)

    # See if this is actually MSYS2/Cygwin Python
    if os.name == 'posix':
        _uname = os.uname()
        if _uname[0].startswith('MINGW'):
            pass
        elif _uname[0].startswith('CYGWIN'):
            hosttype = _uname[4]
            uname = 'cygwin'
            machine = 'pc'
            cc = 'gcc'
            cxx = 'g++'
        else:
            raise error.general('invalid POSIX python for Windows')

    host_triple = '%s-%s-%s' % (hosttype, machine, uname)
    build_triple = '%s-%s-%s' % (hosttype, machine, uname)

    if 'NUMBER_OF_PROCESSORS' in os.environ:
        ncpus = os.environ['NUMBER_OF_PROCESSORS']
    else:
        ncpus = '1'

    if 'MSYSTEM' in os.environ:
        os.environ.pop('NUMBER_OF_PROCESSORS')

    version = uname[2]
    defines = {
        '_ncpus': ('none', 'none', ncpus),
        '_os': ('none', 'none', 'win32'),
        '_windows_os': ('none', 'none', uname),
        '_build': ('triplet', 'required', build_triple),
        '_build_vendor': ('none', 'none', 'microsoft'),
        '_build_os': ('none', 'none', 'win32'),
        '_build_os_version': ('none', 'none', version),
        '_build_cpu': ('none', 'none', hosttype),
        '_build_alias': ('none', 'none', '%{nil}'),
        '_build_arch': ('none', 'none', hosttype),
        '_host': ('triplet', 'required', host_triple),
        '_host_vendor': ('none', 'none', 'microsoft'),
        '_host_os': ('none', 'none', 'win32'),
        '_host_cpu': ('none', 'none', hosttype),
        '_host_alias': ('none', 'none', '%{nil}'),
        '_host_arch': ('none', 'none', hosttype),
        '_usr': ('dir', 'optional', '/opt/local'),
        '_var': ('dir', 'optional', '/opt/local/var'),
        '__bash': ('exe', 'required', 'bash'),
        '__bzip2': ('exe', 'required', 'bzip2'),
        '__bison': ('exe', 'required', 'bison'),
        '__cat': ('exe', 'required', 'cat'),
        '__cc': ('exe', 'required', cc),
        '__chgrp': ('exe', 'required', 'chgrp'),
        '__chmod': ('exe', 'required', 'chmod'),
        '__chown': ('exe', 'required', 'chown'),
        '__cp': ('exe', 'required', 'cp'),
        '__cvs': ('exe', 'optional', 'cvs'),
        '__cxx': ('exe', 'required', cxx),
        '__flex': ('exe', 'required', 'flex'),
        '__git': ('exe', 'required', 'git'),
        '__grep': ('exe', 'required', 'grep'),
        '__gzip': ('exe', 'required', 'gzip'),
        '__id': ('exe', 'required', 'id'),
        '__install': ('exe', 'required', 'install'),
        '__install_info': ('exe', 'required', 'install-info'),
        '__ld': ('exe', 'required', 'ld'),
        '__ldconfig': ('exe', 'none', ''),
        '__makeinfo': ('exe', 'required', 'makeinfo'),
        '__mkdir': ('exe', 'required', 'mkdir'),
        '__mv': ('exe', 'required', 'mv'),
        '__nm': ('exe', 'required', 'nm'),
        '__nm': ('exe', 'required', 'nm'),
        '__objcopy': ('exe', 'required', 'objcopy'),
        '__objdump': ('exe', 'required', 'objdump'),
        '__patch': ('exe', 'required', 'patch'),
        '__patch_bin': ('exe', 'required', 'patch'),
        '__rm': ('exe', 'required', 'rm'),
        '__sed': ('exe', 'required', 'sed'),
        '__sh': ('exe', 'required', 'sh'),
        '__tar': ('exe', 'required', 'bsdtar'),
        '__touch': ('exe', 'required', 'touch'),
        '__unzip': ('exe', 'required', 'unzip'),
        '__xz': ('exe', 'required', 'xz'),
        '_buildshell': ('exe', 'required', '%{__sh}'),
        '___setup_shell': ('exe', 'required', '%{__sh}')
    }

    #
    # Locate a suitable python to use with GDB. Python Windows is more
    # complicated than most hosts. There are 7 possible pythons on Windows and
    # we can use only 4 which are split on machine size. The types are:
    #
    #  1. Python27 - python.org, cannot use cause built with MSVC.
    #  2. Python35 - python.org, cannot use cause built with MSVC.
    #  3. MSYS/Python - MSYS2, cannot use cause it is a MSYS executable.
    #  4. W64/Python2 - Ok if machsize is 64
    #  5. W64/Python3 - gdb-7.9 needs python2.
    #  6. W64/Python2 - Ok if machsize is 32
    #  7. W64/Python3 - gdb-7.9 needs python2.
    #
    # Find a suitable python2 and python3.
    #
    for p in os.environ['PATH'].split(os.pathsep):
        sh = os.path.join(p, 'sh.exe')
        if os.path.exists(sh) and os.path.isfile(sh):
            break
        sh = None
    if sh is None:
        raise error.general('cannot find a shell (sh.exe) in the PATH')
    #
    # Search the MSYS2 install tree for a suitable python.
    #
    if sys.platform == 'msys':
        e = execute.capture_execution()
        exit_code, proc, output = e.shell("sh -c mount")
        if exit_code != 0:
            raise error.general('cannot get MSYS mount points')
        install_point = None
        for l in output.split('\n'):
            if ' on / ' in l:
                install_point = l.split()[0]
                break
        if install_point is None:
            raise error.general('cannot locate MSYS root mount point')
        if install_point[1] != ':':
            raise error.general('invalid MSYS root mount point: %s' %
                                install_point)
        install_point = path.shell(install_point)
        mingw = path.join(install_point, 'mingw%s' % (machsize))
        if not path.exists(mingw) or not path.isdir(mingw):
            raise error.general('cannot find MinGW install: %s' %
                                (path.host(mingw)))
        for version in ['2', '3']:
            python = 'python%s' % (version)
            exe = path.join(mingw, 'bin', '%s.exe' % (python))
            if not path.exists(exe) or not path.isdir(exe):
                defines['gdb_python%s' % (version)] = exe
                header = path.join(mingw, python)

    return defines
Exemple #7
0
#This may or may not be where the actual main program ends up. For now it just imports everything so i can test.
import scipy as sp
import display
import stl_importer
import path
import surfaces
#import mesh

w1 = surfaces.wave(5,30,0,0)
test = stl_importer.stl_import('model.stl')
#test = test.tesselate(2)
#test = w1.meshShift(test,-1)
layers = test.chop(3)
layers = layers[:-1]
for layer in layers:
    path.straighten(layer)
    path.order(layer)
    path.shell(3,0.75,layer)
    path.wrapLayer(layer,w1,4)


chain = []
for layer in layers:
    for shellGroup in layer.shells:
        for shell in shellGroup:
            chain.extend(shell)
display.edgePlot(chain)
Exemple #8
0
#This may or may not be where the actual main program ends up. For now it just imports everything so i can test.
import scipy as sp
import display
import stl_importer
import path
import surfaces
#import mesh

w1 = surfaces.wave(5, 30, 0, 0)
test = stl_importer.stl_import('model.stl')
#test = test.tesselate(2)
#test = w1.meshShift(test,-1)
layers = test.chop(3)
layers = layers[:-1]
for layer in layers:
    path.straighten(layer)
    path.order(layer)
    path.shell(3, 0.75, layer)
    path.wrapLayer(layer, w1, 4)

chain = []
for layer in layers:
    for shellGroup in layer.shells:
        for shell in shellGroup:
            chain.extend(shell)
display.edgePlot(chain)
Exemple #9
0
        if _email is not None:
            if _name is not None:
                _email = '%s <%s>' % (_name, _email)
            return _email
        return None

    def head(self):
        hash = ''
        ec, output = self._run(['log', '-n', '1'])
        if ec == 0:
            l1 = output.split('\n')[0]
            if l1.startswith('commit '):
                hash = l1[len('commit '):]
        return hash

if __name__ == '__main__':
    import os.path
    import sys
    defaults = path.join(path.dirname(path.dirname(path.shell(sys.argv[0]))), 'defaults.mc')
    opts = options.load(sys.argv, defaults = defaults)
    g = repo('.', opts)
    print('g.git_version():', g.git_version())
    print('g.valid():', g.valid())
    print('g.submodules():', g.submodules())
    print('g.status():', g.status())
    print('g.status():', g.status(True))
    print('g.dirty():', g.dirty())
    print('g.remotes():', g.remotes())
    print('g.email():', g.email())
    print('g.head():', g.head())
Exemple #10
0
def load():
    # Default to the native Windows Python.
    uname = 'win32'
    if 'PROCESSOR_ARCHITECTURE' in os.environ:
        if os.environ['PROCESSOR_ARCHITECTURE'] == 'AMD64':
            hosttype = 'x86_64'
            machsize = '64'
        else:
            hosttype = 'i686'
            machsize = '32'
    else:
        hosttype = 'x86_64'
        machsize = '32'

    uname = 'mingw32'
    machine = 'w%s' % (machsize)

    # Set the C/C++ compilers we want to use.
    cc = '%s-%s-%s-gcc' % (hosttype, machine, uname)
    cxx = '%s-%s-%s-g++' % (hosttype, machine, uname)

    # See if this is actually MSYS2/Cygwin Python
    if os.name == 'posix':
        _uname = os.uname()
        if _uname[0].startswith('MINGW'):
            pass
        elif _uname[0].startswith('CYGWIN'):
            hosttype = _uname[4]
            uname = 'cygwin'
            machine = 'pc'
            cc = 'gcc'
            cxx = 'g++'
        else:
            raise error.general('invalid POSIX python for Windows')

    host_triple = '%s-%s-%s' % (hosttype, machine, uname)
    build_triple = '%s-%s-%s' % (hosttype, machine, uname)

    if 'NUMBER_OF_PROCESSORS' in os.environ:
        ncpus = os.environ['NUMBER_OF_PROCESSORS']
    else:
        ncpus = '1'

    if 'MSYSTEM' in os.environ:
        os.environ.pop('NUMBER_OF_PROCESSORS')

    version = uname[2]
    defines = {
        '_ncpus':            ('none',    'none',     ncpus),
        '_os':               ('none',    'none',     'win32'),
        '_windows_os':       ('none',    'none',     uname),
        '_build':            ('triplet', 'required', build_triple),
        '_build_vendor':     ('none',    'none',     'microsoft'),
        '_build_os':         ('none',    'none',     'win32'),
        '_build_os_version': ('none',    'none',     version),
        '_build_cpu':        ('none',    'none',     hosttype),
        '_build_alias':      ('none',    'none',     '%{nil}'),
        '_build_arch':       ('none',    'none',     hosttype),
        '_host':             ('triplet', 'required', host_triple),
        '_host_vendor':      ('none',    'none',     'microsoft'),
        '_host_os':          ('none',    'none',     'win32'),
        '_host_cpu':         ('none',    'none',     hosttype),
        '_host_alias':       ('none',    'none',     '%{nil}'),
        '_host_arch':        ('none',    'none',     hosttype),
        '_usr':              ('dir',     'optional', '/opt/local'),
        '_var':              ('dir',     'optional', '/opt/local/var'),
        '__bash':            ('exe',     'required', 'bash'),
        '__bzip2':           ('exe',     'required', 'bzip2'),
        '__bison':           ('exe',     'required', 'bison'),
        '__cat':             ('exe',     'required', 'cat'),
        '__cc':              ('exe',     'required', cc),
        '__chgrp':           ('exe',     'required', 'chgrp'),
        '__chmod':           ('exe',     'required', 'chmod'),
        '__chown':           ('exe',     'required', 'chown'),
        '__cp':              ('exe',     'required', 'cp'),
        '__cvs':             ('exe',     'optional', 'cvs'),
        '__cxx':             ('exe',     'required', cxx),
        '__flex':            ('exe',     'required', 'flex'),
        '__git':             ('exe',     'required', 'git'),
        '__grep':            ('exe',     'required', 'grep'),
        '__gzip':            ('exe',     'required', 'gzip'),
        '__id':              ('exe',     'required', 'id'),
        '__install':         ('exe',     'required', 'install'),
        '__install_info':    ('exe',     'required', 'install-info'),
        '__ld':              ('exe',     'required', 'ld'),
        '__ldconfig':        ('exe',     'none',     ''),
        '__makeinfo':        ('exe',     'required', 'makeinfo'),
        '__mkdir':           ('exe',     'required', 'mkdir'),
        '__mv':              ('exe',     'required', 'mv'),
        '__nm':              ('exe',     'required', 'nm'),
        '__nm':              ('exe',     'required', 'nm'),
        '__objcopy':         ('exe',     'required', 'objcopy'),
        '__objdump':         ('exe',     'required', 'objdump'),
        '__patch':           ('exe',     'required', 'patch'),
        '__patch_bin':       ('exe',     'required', 'patch'),
        '__rm':              ('exe',     'required', 'rm'),
        '__sed':             ('exe',     'required', 'sed'),
        '__sh':              ('exe',     'required', 'sh'),
        '__tar':             ('exe',     'required', 'bsdtar'),
        '__touch':           ('exe',     'required', 'touch'),
        '__unzip':           ('exe',     'required', 'unzip'),
        '__xz':              ('exe',     'required', 'xz'),
        '_buildshell':       ('exe',     'required', '%{__sh}'),
        '___setup_shell':    ('exe',     'required', '%{__sh}')
        }

    #
    # Locate a suitable python to use with GDB. Python Windows is more
    # complicated than most hosts. There are 7 possible pythons on Windows and
    # we can use only 4 which are split on machine size. The types are:
    #
    #  1. Python27 - python.org, cannot use cause built with MSVC.
    #  2. Python35 - python.org, cannot use cause built with MSVC.
    #  3. MSYS/Python - MSYS2, cannot use cause it is a MSYS executable.
    #  4. W64/Python2 - Ok if machsize is 64
    #  5. W64/Python3 - gdb-7.9 needs python2.
    #  6. W64/Python2 - Ok if machsize is 32
    #  7. W64/Python3 - gdb-7.9 needs python2.
    #
    # Find a suitable python2 and python3.
    #
    for p in os.environ['PATH'].split(os.pathsep):
        sh = os.path.join(p, 'sh.exe')
        if os.path.exists(sh) and os.path.isfile(sh):
            break
        sh = None
    if sh is None:
        raise error.general('cannot find a shell (sh.exe) in the PATH')
    #
    # Search the MSYS2 install tree for a suitable python.
    #
    if sys.platform == 'msys':
        e = execute.capture_execution()
        exit_code, proc, output = e.shell("sh -c mount")
        if exit_code != 0:
            raise error.general('cannot get MSYS mount points')
        install_point = None
        for l in output.split('\n'):
            if ' on / ' in l:
                install_point = l.split()[0]
                break
        if install_point is None:
            raise error.general('cannot locate MSYS root mount point')
        if install_point[1] != ':':
            raise error.general('invalid MSYS root mount point: %s' % install_point)
        install_point = path.shell(install_point)
        mingw = path.join(install_point, 'mingw%s' % (machsize))
        if not path.exists(mingw) or not path.isdir(mingw):
            raise error.general('cannot find MinGW install: %s' % (path.host(mingw)))
        for version in ['2', '3']:
            python = 'python%s' % (version)
            exe = path.join(mingw, 'bin', '%s.exe' % (python))
            if not path.exists(exe) or not path.isdir(exe):
                defines['gdb_python%s' % (version)] = exe
                header = path.join(mingw, python)

    return defines