Changeset 28410eb in rtems-source-builder


Ignore:
Timestamp:
Dec 7, 2014, 5:04:35 PM (5 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.10, 4.11, 4.9, master
Children:
e794d0a
Parents:
14e5d2e
git-author:
Sebastian Huber <sebastian.huber@…> (12/07/14 17:04:35)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/11/14 06:50:10)
Message:

sb: Move build set to formatter classes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source-builder/sb/reports.py

    r14e5d2e r28410eb  
    9797    def epilogue(self, name):
    9898        return ''
     99
     100    def config_start(self, nest_level, name):
     101        return ''
     102
     103    def config(self, nest_level, name, _config):
     104        c = chunk()
     105        c.line('-' * _line_len)
     106        c.line('Package: %s' % (name))
     107        c.line(' Config: %s' % (_config.file_name()))
     108        return c.get()
     109
     110    def config_end(self, nest_level, name):
     111        return ''
     112
     113    def buildset_start(self, nest_level, name):
     114        c = chunk()
     115        c.line('=-' * (_line_len / 2))
     116        c.line('Build Set: %s' % (name))
     117        return c.get()
     118
     119    def buildset_end(self, nest_level, name):
     120        return ''
     121
     122    def info(self, nest_level, name, info, separated):
     123        c = chunk()
     124        c.line(' ' + name + ':')
     125        for l in info:
     126            c.line('  ' + l)
     127        return c.get()
     128
     129    def directive(self, nest_level, name, data):
     130        c = chunk()
     131        c.line(' %s:' % (name))
     132        for l in data:
     133            c.line('  ' + l)
     134        return c.get()
     135
     136    def files(self, nest_level, sigular, plural, _files):
     137        c = chunk()
     138        c.line('  ' + plural + ': %d' % (len(_files)))
     139        i = 0
     140        for name in _files:
     141            for s in _files[name]:
     142                i += 1
     143                c.line('   %2d: %s' % (i, s[0]))
     144                if s[1] is None:
     145                    h = 'No checksum'
     146                else:
     147                    hash = s[1].split()
     148                    h = '%s: %s' % (hash[0], hash[1])
     149                c.line('       %s' % (h))
     150        return c.get()
    99151
    100152class asciidoc_formatter(formatter):
     
    154206        c.line("'''")
    155207        c.line('')
     208        return c.get()
     209
     210    def config(self, nest_level, name, _config):
     211        c = chunk()
     212        c.line('*Package*: _%s_ +' % (name))
     213        c.line('*Config*: %s' % (_config.file_name()))
     214        c.line('')
     215        return c.get()
     216
     217    def config_end(self, nest_level, name):
     218        c = chunk()
     219        c.line('')
     220        c.line("'''")
     221        c.line('')
     222        return c.get()
     223
     224    def buildset_start(self, nest_level, name):
     225        c = chunk()
     226        h = '%s' % (name)
     227        c.line('=%s %s' % ('=' * nest_level, h))
     228        return c.get()
     229
     230    def info(self, nest_level, name, info, separated):
     231        c = chunk()
     232        end = ''
     233        if separated:
     234            c.line('*%s:*::' % (name))
     235            c.line('')
     236        else:
     237            c.line('*%s:* ' % (name))
     238            end = ' +'
     239        spaces = ''
     240        for l in info:
     241            c.line('%s%s%s' % (spaces, l, end))
     242        if separated:
     243            c.line('')
     244        return c.get()
     245
     246    def directive(self, nest_level, name, data):
     247        c = chunk()
     248        c.line('')
     249        c.line('*%s*:' % (name))
     250        c.line('--------------------------------------------')
     251        for l in data:
     252            c.line(l)
     253        c.line('--------------------------------------------')
     254        return c.get()
     255
     256    def files(self, nest_level, singular, plural, _files):
     257        c = chunk()
     258        c.line('')
     259        c.line('*' + plural + ':*::')
     260        if len(_files) == 0:
     261            c.line('No ' + plural.lower())
     262        for name in _files:
     263            for s in _files[name]:
     264                c.line('. %s' % (s[0]))
     265                if s[1] is None:
     266                    h = 'No checksum'
     267                else:
     268                    hash = s[1].split()
     269                    h = '%s: %s' % (hash[0], hash[1])
     270                c.line('+\n%s\n' % (h))
    156271        return c.get()
    157272
     
    244359        return c.get()
    245360
     361    def config(self, nest_level, name, _config):
     362        return ''
     363
     364    def buildset_start(self, nest_level, name):
     365        return ''
     366
     367    def info(self, nest_level, name, info, separated):
     368        return ''
     369
     370    def directive(self, nest_level, name, data):
     371        return ''
     372
     373    def files(self, nest_level, singular, plural, _files):
     374        return ''
     375
    246376class xml_formatter(formatter):
    247377    def format(self):
     
    275405            c.line('\t\t<Status>invalid</Status>')
    276406        c.line('\t</Git>')
     407        return c.get()
     408
     409    def config_start(self, nest_level, name):
     410        c = chunk()
     411        c.line('\t' * nest_level + '<Package name="' + name + '">')
     412        return c.get()
     413
     414    def config(self, nest_level, name, _config):
     415        c = chunk()
     416        c.line('\t' * nest_level + '<Config>' + _config.file_name() + '</Config>')
     417        return c.get()
     418
     419    def config_end(self, nest_level, name):
     420        c = chunk()
     421        c.line('\t' * nest_level + '</Package>')
     422        return c.get()
     423
     424    def buildset_start(self, nest_level, name):
     425        c = chunk()
     426        c.line('\t' * nest_level + '<BuildSet name="' + name + '">')
     427        return c.get()
     428
     429    def buildset_end(self, nest_level, name):
     430        c = chunk()
     431        c.line('\t' * nest_level + '</BuildSet>')
     432        return c.get()
     433
     434    def info(self, nest_level, name, info, separated):
     435        c = chunk()
     436        c.add('\t' * nest_level + '<' + name.replace(' ', '') + '>')
     437        for l in info:
     438            c.add(l)
     439        c.line('</' + name + '>')
     440        return c.get()
     441
     442    def directive(self, nest_level, name, data):
     443        c = chunk()
     444        c.line('\t' * nest_level + '<' + name + '><![CDATA[')
     445        for l in data:
     446            c.line(l.replace(']]>', ']]]><![CDATA[]>'))
     447        c.line(']]></' + name + '>')
     448        return c.get()
     449
     450    def files(self, nest_level, sigular, plural, _files):
     451        c = chunk()
     452        for name in _files:
     453            for s in _files[name]:
     454                c.add('\t' * nest_level + '<' + sigular)
     455                if not (s[1] is None):
     456                    hash = s[1].split()
     457                    c.add(' ' + hash[0] + '="' + hash[1] + '"')
     458                c.line('>' + s[0] + '</' + sigular + '>')
    277459        return c.get()
    278460
     
    363545            if cfbn not in self.files['configs']:
    364546                self.files['configs'] += [cfbn]
     547        self.out += self.formatter.config_start(self.bset_nesting + 1, name)
    365548
    366549    def config_end(self, name, _config):
    367         if self.is_asciidoc():
    368             self.output('')
    369             self.output("'''")
    370             self.output('')
     550        self.out += self.formatter.config_end(self.bset_nesting + 1, name)
    371551
    372552    def buildset_start(self, name):
    373553        self.files['buildsets'] += [name]
    374         if self.is_asciidoc():
    375             h = '%s' % (name)
    376             self.output('=%s %s' % ('=' * self.bset_nesting, h))
    377         elif self.is_ini():
    378             pass
    379         else:
    380             self.output('=-' * (_line_len / 2))
    381             self.output('Build Set: %s' % (name))
     554        self.out += self.formatter.buildset_start(self.bset_nesting, name)
    382555
    383556    def buildset_end(self, name):
    384         return
     557        self.out += self.formatter.buildset_end(self.bset_nesting, name)
    385558
    386559    def source(self, macros):
     
    414587    def output_info(self, name, info, separated = False):
    415588        if info is not None:
    416             end = ''
    417             if self.is_asciidoc():
    418                 if separated:
    419                     self.output('*%s:*::' % (name))
    420                     self.output('')
    421                 else:
    422                     self.output('*%s:* ' % (name))
    423                     end = ' +'
    424                 spaces = ''
    425             else:
    426                 self.output(' %s:' % (name))
    427                 spaces = '  '
    428             for l in info:
    429                 self.output('%s%s%s' % (spaces, l, end))
    430             if self.is_asciidoc() and separated:
    431                 self.output('')
     589            self.out += self.formatter.info(self.bset_nesting + 2, name, info, separated)
    432590
    433591    def output_directive(self, name, directive):
    434592        if directive is not None:
    435             if self.is_asciidoc():
    436                 self.output('')
    437                 self.output('*%s*:' % (name))
    438                 self.output('--------------------------------------------')
    439                 spaces = ''
    440             else:
    441                 self.output(' %s:' % (name))
    442                 spaces = '  '
    443             for l in directive:
    444                 self.output('%s%s' % (spaces, l))
    445             if self.is_asciidoc():
    446                 self.output('--------------------------------------------')
     593            self.out += self.formatter.directive(self.bset_nesting + 2, name, directive)
    447594
    448595    def tree_sources(self, name, tree, sources = []):
     
    482629                tree['patches'] = patches
    483630        self.config_start(name, _config)
    484         if self.is_ini():
    485             return
    486         if self.is_asciidoc():
    487             self.output('*Package*: _%s_ +' % (name))
    488             self.output('*Config*: %s' % (_config.file_name()))
    489             self.output('')
    490         else:
    491             self.output('-' * _line_len)
    492             self.output('Package: %s' % (name))
    493             self.output(' Config: %s' % (_config.file_name()))
     631        self.out += self.formatter.config(self.bset_nesting + 2, name, _config)
    494632        self.output_info('Summary', package.get_info('summary'), True)
    495633        self.output_info('URL', package.get_info('url'))
     
    497635        self.output_info('Release', package.get_info('release'))
    498636        self.output_info('Build Arch', package.get_info('buildarch'))
    499         if self.is_asciidoc():
    500             self.output('')
    501         if self.is_asciidoc():
    502             self.output('*Sources:*::')
    503             if len(sources) == 0:
    504                 self.output('No sources')
    505         else:
    506             self.output('  Sources: %d' % (len(sources)))
    507         c = 0
    508         for name in sources:
    509             for s in sources[name]:
    510                 c += 1
    511                 if self.is_asciidoc():
    512                     self.output('. %s' % (s[0]))
    513                 else:
    514                     self.output('   %2d: %s' % (c, s[0]))
    515                 if s[1] is None:
    516                     h = 'No checksum'
    517                 else:
    518                     hash = s[1].split()
    519                     h = '%s: %s' % (hash[0], hash[1])
    520                 if self.is_asciidoc():
    521                     self.output('+\n%s\n' % (h))
    522                 else:
    523                     self.output('       %s' % (h))
    524         if self.is_asciidoc():
    525             self.output('')
    526             self.output('*Patches:*::')
    527             if len(patches) == 0:
    528                 self.output('No patches')
    529         else:
    530             self.output('  Patches: %s' % (len(patches)))
    531         c = 0
    532         for name in patches:
    533             for p in patches[name]:
    534                 c += 1
    535                 if self.is_asciidoc():
    536                     self.output('. %s' % (p[0]))
    537                 else:
    538                     self.output('   %2d: %s' % (c, p[0]))
    539                 hash = p[1]
    540                 if hash is None:
    541                     h = 'No checksum'
    542                 else:
    543                     hash = hash.split()
    544                     h = '%s: %s' % (hash[0], hash[1])
    545                 if self.is_asciidoc():
    546                     self.output('+\n(%s)\n' % (h))
    547                 else:
    548                     self.output('       %s' % (h))
     637        self.out += self.formatter.files(self.bset_nesting + 2, "Source", "Sources", sources)
     638        self.out += self.formatter.files(self.bset_nesting + 2, "Patch", "Patches", patches)
    549639        self.output_directive('Preparation', package.prep())
    550640        self.output_directive('Build', package.build())
Note: See TracChangeset for help on using the changeset viewer.