Ejemplo n.º 1
0
  def GenerateRange(self, ast, releases, options):
    # Get list of out files
    outlist = GetOption('out')
    if outlist: outlist = outlist.split(',')

    skipList = []
    cnt = 0
    for filenode in ast.GetListOf('File'):
      # Ignore files with errors
      if filenode in self.skip_list:
        continue

      # Skip this file if not required
      if outlist and filenode.GetName() not in outlist:
        continue

      # Create the output file and increment out count if there was a delta
      if self.GenerateFile(filenode, releases, options):
        cnt = cnt + 1

    for filenode in skipList:
      errcnt = filenode.GetProperty('ERRORS')
      ErrOut.Log('%s : Skipped because of %d errors.' % (
          filenode.GetName(), errcnt))

    if skipList:
      return -len(skipList)

    if GetOption('diff'):
      return -cnt
    return cnt
Ejemplo n.º 2
0
    def GenerateRange(self, ast, releases, options):
        # Get list of out files
        outlist = GetOption('out')
        if outlist: outlist = outlist.split(',')

        skipList = []
        cnt = 0
        for filenode in ast.GetListOf('File'):
            # Ignore files with errors
            if filenode in self.skip_list:
                continue

            # Skip this file if not required
            if outlist and filenode.GetName() not in outlist:
                continue

            # Create the output file and increment out count if there was a delta
            if self.GenerateFile(filenode, releases, options):
                cnt = cnt + 1

        for filenode in skipList:
            errcnt = filenode.GetProperty('ERRORS')
            ErrOut.Log('%s : Skipped because of %d errors.' %
                       (filenode.GetName(), errcnt))

        if skipList:
            return -len(skipList)

        if GetOption('diff'):
            return -cnt
        return cnt
Ejemplo n.º 3
0
  def Generate(self, ast, options):
    self.errors = 0

    rangestr = GetOption('range')
    releasestr = GetOption('release')

    print "Found releases: %s" % ast.releases

    # Generate list of files to ignore due to errors
    for filenode in ast.GetListOf('File'):
      # If this file has errors, skip it
      if filenode.GetProperty('ERRORS') > 0:
        self.skip_list.append(filenode)
        continue

    # Check for a range option which over-rides a release option
    if not releasestr and rangestr:
      range_list = rangestr.split(',')
      if len(range_list) != 2:
        self.Error('Failed to generate for %s, incorrect range: "%s"' %
                   (self.name, rangestr))
      else:
        vmin = range_list[0]
        vmax = range_list[1]

        # Generate 'start' and 'end' represent first and last found.
        if vmin == 'start':
            vmin = ast.releases[0]
        if vmax == 'end':
            vmax = ast.releases[-1]

        vmin = ast.releases.index(vmin)
        vmax = ast.releases.index(vmax) + 1
        releases = ast.releases[vmin:vmax]
        InfoOut.Log('Generate range %s of %s.' % (rangestr, self.name))
        ret = self.GenerateRange(ast, releases, options)
        if ret < 0:
          self.Error('Failed to generate range %s : %s.' %(vmin, vmax))
        else:
          InfoOut.Log('%s wrote %d files.' % (self.name, ret))
    # Otherwise this should be a single release generation
    else:
      if releasestr == 'start':
        releasestr = ast.releases[0]
      if releasestr == 'end':
        releasestr = ast.releases[-1]
      if releasestr:
        InfoOut.Log('Generate release %s of %s.' % (releasestr, self.name))
        ret = self.GenerateRelease(ast, releasestr, options)
        if ret < 0:
          self.Error('Failed to generate release %s.' % releasestr)
        else:
          InfoOut.Log('%s wrote %d files.' % (self.name, ret))

      else:
        self.Error('No range or release specified for %s.' % releasestr)
    return self.errors
Ejemplo n.º 4
0
    def Generate(self, ast, options):
        self.errors = 0

        rangestr = GetOption('range')
        releasestr = GetOption('release')

        # Check for a range option which over-rides a release option
        if not releasestr and rangestr:
            range_list = rangestr.split(',')
            if len(range_list) != 2:
                self.Error('Failed to generate for %s, incorrect range: "%s"' %
                           (self.name, rangestr))
            else:
                vmin = range_list[0]
                vmax = range_list[1]
                vmin = ast.releases.index(vmin)
                vmax = ast.releases.index(vmax) + 1
                range = ast.releases[vmin:vmax]
                InfoOut.Log('Generate range %s of %s.' % (range, self.name))
                ret = self.GenerateRange(ast, range, options)
                if ret < 0:
                    self.Error('Failed to generate range %s : %s.' %
                               (vmin, vmax))
                else:
                    InfoOut.Log('%s wrote %d files.' % (self.name, ret))
        # Otherwise this should be a single release generation
        else:
            if releasestr:
                InfoOut.Log('Generate release %s of %s.' %
                            (releasestr, self.name))
                ret = self.GenerateRelease(ast, releasestr, options)
                if ret < 0:
                    self.Error('Failed to generate release %s.' % releasestr)
                else:
                    InfoOut.Log('%s wrote %d files.' % (self.name, ret))

            else:
                self.Error('No range or release specified for %s.' %
                           releasestr)
        return self.errors
Ejemplo n.º 5
0
  def Generate(self, ast, options):
    self.errors = 0

    rangestr = GetOption('range')
    releasestr = GetOption('release')

    # Check for a range option which over-rides a release option
    if not releasestr and rangestr:
      range_list = rangestr.split(',')
      if len(range_list) != 2:
        self.Error('Failed to generate for %s, incorrect range: "%s"' %
                   (self.name, rangestr))
      else:
        vmin = range_list[0]
        vmax = range_list[1]
        vmin = ast.releases.index(vmin)
        vmax = ast.releases.index(vmax) + 1
        range = ast.releases[vmin:vmax]
        InfoOut.Log('Generate range %s of %s.' % (range, self.name))
        ret = self.GenerateRange(ast, range, options)
        if ret < 0:
          self.Error('Failed to generate range %s : %s.' %(vmin, vmax))
        else:
          InfoOut.Log('%s wrote %d files.' % (self.name, ret))
    # Otherwise this should be a single release generation
    else:
      if releasestr:
        InfoOut.Log('Generate release %s of %s.' % (releasestr, self.name))
        ret = self.GenerateRelease(ast, releasestr, options)
        if ret < 0:
          self.Error('Failed to generate release %s.' % releasestr)
        else:
          InfoOut.Log('%s wrote %d files.' % (self.name, ret))

      else:
        self.Error('No range or release specified for %s.' % releasestr)
    return self.errors
Ejemplo n.º 6
0
  def GenerateRange(self, ast, releases, options):
    # Get list of out files
    outlist = GetOption('out')
    if outlist: outlist = outlist.split(',')

    skipList = []
    cnt = 0
    for filenode in ast.GetListOf('File'):
      # Skip this file if not required
      if outlist and filenode.GetName() not in outlist:
        continue

      # If this file has errors, skip it
      if filenode.GetProperty('ERRORS') > 0:
        skipList.append(filenode)
        continue

      # Create output file
      out = self.GetOutFile(filenode, options)
      self.GenerateHead(out, filenode, releases, options)
      self.GenerateBody(out, filenode, releases, options)
      self.GenerateTail(out, filenode, releases, options)

      if out.Close(): cnt = cnt + 1

    for filenode in skipList:
      errcnt = filenode.GetProperty('ERRORS')
      ErrOut.Log('%s : Skipped because of %d errors.' % (
          filenode.GetName(), errcnt))

    if skipList:
      return -len(skipList)

    if GetOption('diff'):
      return -cnt
    return cnt
Ejemplo n.º 7
0
    def GenerateRange(self, ast, releases, options):
        # Get list of out files
        outlist = GetOption('out')
        if outlist: outlist = outlist.split(',')

        skipList = []
        cnt = 0
        for filenode in ast.GetListOf('File'):
            # Skip this file if not required
            if outlist and filenode.GetName() not in outlist:
                continue

            # If this file has errors, skip it
            if filenode.GetProperty('ERRORS') > 0:
                skipList.append(filenode)
                continue

            # Create output file
            out = self.GetOutFile(filenode, options)
            self.GenerateHead(out, filenode, releases, options)
            self.GenerateBody(out, filenode, releases, options)
            self.GenerateTail(out, filenode, releases, options)

            if out.Close(): cnt = cnt + 1

        for filenode in skipList:
            errcnt = filenode.GetProperty('ERRORS')
            ErrOut.Log('%s : Skipped because of %d errors.' %
                       (filenode.GetName(), errcnt))

        if skipList:
            return -len(skipList)

        if GetOption('diff'):
            return -cnt
        return cnt
Ejemplo n.º 8
0
    def Generate(self, ast, options):
        self.errors = 0

        rangestr = GetOption("range")
        releasestr = GetOption("release")

        print "Found releases: %s" % ast.releases

        # Generate list of files to ignore due to errors
        for filenode in ast.GetListOf("File"):
            # If this file has errors, skip it
            if filenode.GetProperty("ERRORS") > 0:
                self.skip_list.append(filenode)
                continue

        # Check for a range option which over-rides a release option
        if not releasestr and rangestr:
            range_list = rangestr.split(",")
            if len(range_list) != 2:
                self.Error('Failed to generate for %s, incorrect range: "%s"' % (self.name, rangestr))
            else:
                vmin = range_list[0]
                vmax = range_list[1]

                # Generate 'start' and 'end' represent first and last found.
                if vmin == "start":
                    vmin = ast.releases[0]
                if vmax == "end":
                    vmax = ast.releases[-1]

                vmin = ast.releases.index(vmin)
                vmax = ast.releases.index(vmax) + 1
                releases = ast.releases[vmin:vmax]
                InfoOut.Log("Generate range %s of %s." % (rangestr, self.name))
                ret = self.GenerateRange(ast, releases, options)
                if ret < 0:
                    self.Error("Failed to generate range %s : %s." % (vmin, vmax))
                else:
                    InfoOut.Log("%s wrote %d files." % (self.name, ret))
        # Otherwise this should be a single release generation
        else:
            if releasestr == "start":
                releasestr = ast.releases[0]
            if releasestr == "end":
                releasestr = ast.releases[-1]

            if releasestr > ast.releases[0]:
                InfoOut.Log("There is no unique release for %s, using last release." % releasestr)
                releasestr = ast.releases[-1]

            if releasestr not in ast.releases:
                self.Error("Release %s not in [%s]." % (releasestr, ", ".join(ast.releases)))

            if releasestr:
                InfoOut.Log("Generate release %s of %s." % (releasestr, self.name))
                ret = self.GenerateRelease(ast, releasestr, options)
                if ret < 0:
                    self.Error("Failed to generate release %s." % releasestr)
                else:
                    InfoOut.Log("%s wrote %d files." % (self.name, ret))

            else:
                self.Error("No range or release specified for %s." % releasestr)
        return self.errors