diff options
| -rwxr-xr-x | scripts/combo-layer | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/scripts/combo-layer b/scripts/combo-layer index 36123238b9..73d61cce4c 100755 --- a/scripts/combo-layer +++ b/scripts/combo-layer @@ -144,6 +144,43 @@ def check_repo_clean(repodir):          logger.error("git repo %s is dirty, please fix it first", repodir)          sys.exit(1) +def check_patch(patchfile): +    f = open(patchfile) +    ln = f.readline() +    of = None +    in_patch = False +    beyond_msg = False +    pre_buf = '' +    while ln: +        if not beyond_msg: +            if ln == '---\n': +                if not of: +                    break +                in_patch = False +                beyond_msg = True +            elif ln.startswith('--- '): +                # We have a diff in the commit message +                in_patch = True +                if not of: +                    print('WARNING: %s contains a diff in its commit message, indenting to avoid failure during apply' % patchfile) +                    of = open(patchfile + '.tmp', 'w') +                    of.write(pre_buf) +                    pre_buf = '' +            elif in_patch and not ln[0] in '+-@ \n\r': +                in_patch = False +        if of: +            if in_patch: +                of.write(' ' + ln) +            else: +                of.write(ln) +        else: +            pre_buf += ln +        ln = f.readline() +    f.close() +    if of: +        of.close() +        os.rename(patchfile + '.tmp', patchfile) +  def action_update(conf, args):      """          update the component repos @@ -227,6 +264,7 @@ def action_update(conf, args):          count=len(revlist)-1          for patch in patchlist:              f.write("%s %s\n" % (patch, revlist[count])) +            check_patch(os.path.join(patch_dir, patch))              count=count-1          f.close() | 
