def _parse(self, log):
        parser = BlockParser()
        tree = parser._parse(log.body)
        for item in tree:
            if isinstance(item, Fold) and not isinstance(item, EmptyFold) and len(item._content) > 1:
                print('Fold({0})..'.format(item.name))
                for part in item._content:
                    print('   {0}'.format(part))
            else:
                print(item)

        raise RuntimeError
예제 #2
0
    def _parse(self, log):
        parser = BlockParser()
        tree = parser._parse(log.body)
        for item in tree:
            if isinstance(item, Fold) and not isinstance(
                    item, EmptyFold) and len(item._content) > 1:
                print('Fold({0})..'.format(item.name))
                for part in item._content:
                    print('   {0}'.format(part))
            else:
                print(item)

        raise RuntimeError
예제 #3
0
def main():
    args = sys.argv[1:]
    assert args
    for filename in args:
        print('--{0}--'.format(filename))
        assert os.path.isfile(filename)

        file = codecs.open(filename, 'r', 'utf-8')

        log = LogParser.from_file(file)

        try:
            parser = BlockParser()
            blocks = parser.split(log.body)

            block_names = blocks.keys()
            if len(set(block_names)) != len(block_names):
                raise Exception(
                    'repeated block names: {0}'.format(block_names))

            [len(block) for block in blocks]
            #continue

            for key, block in blocks.items():
                print('----{0}----'.format(block.name))
                if block.name not in ['_environment', '_init']:
                    continue
                if block.commands:
                    print('   commands    ')
                    for command in block.commands:
                        print(command.lines)

                if block.lines:
                    print('   lines    ')
                    for line in block.lines:
                        print(line)

        except TravisLogCorrupt:
            print('corrupt')
            pass
예제 #4
0
 def _split(self, log):
     parser = BlockParser()
     blocks = parser.split(log.body)
     return blocks
 def _split(self, log):
     parser = BlockParser()
     blocks = parser.split(log.body)
     return blocks