コード例 #1
0
ファイル: diff.py プロジェクト: jhford/manifest-utilities
def diff_manifest_content(left, right, output_func, output, filters=None):
    left_projects = resolve_manifest(open_xml(left), filters)
    right_projects = resolve_manifest(open_xml(right), filters)

    left_name = os.path.split(left.rstrip(os.sep))[1]
    right_name = os.path.split(right.rstrip(os.sep))[1]

    only_in_left = [] # list of projects that are only on the left
    only_in_right = [] # ditto, right
    in_both_sides = [] # list of paths that are on both sides
    different = [] # list of L/R pairs
    same = []

    for l_key in sorted(left_projects.keys()):
        if l_key not in right_projects.keys():
            only_in_left.append(left_projects[l_key])
        else:
            in_both_sides.append(l_key)
    for r_key in sorted(right_projects.keys()):
        if r_key not in left_projects.keys():
            only_in_right.append(right_projects[r_key])

    for key in in_both_sides:
        if left_projects[key] == right_projects[key]:
            same.append(left_projects[key])
        else:
            different.append((left_projects[key], right_projects[key]))

    if hasattr(output, 'write'):
        output_func(output, same, only_in_left, only_in_right, different, left_name, right_name)
    else:
        with open(output, 'wb') as f:
            output_func(f, same, only_in_left, only_in_right, different, left_name, right_name)
コード例 #2
0
ファイル: freeze.py プロジェクト: jhford/manifest-utilities
def freeze(f, output, b2g_root, gaia_branch, gecko_branch, moz_remotes=[], moz_branch=[]):
    node = open_xml(f)
    default_remote = node.find('default').get('remote')
    for p in node.findall('project'):
        if p.get('path') == 'gecko':
            p.set('revision', gecko_branch)
        elif p.get('path') == 'gaia':
            p.set('revision', gaia_branch)
        elif p.get('remote') in moz_remotes:
            p.set('revision', moz_branch)
        elif p.get('remote', None) == None and default_remote in moz_remotes:
            p.set('revision', moz_branch)
        else:
            rev = revision_from_project(os.path.join(b2g_root, p.get('path')))
            if p.get('revision') and p.get('revision') != rev:
                p.set('upstream', p.get('revision'))
            p.set('revision', rev)
    serialize_manifest(node, output)
コード例 #3
0
ファイル: filter.py プロジェクト: jhford/manifest-utilities
def filter(f, output, filters):
    node = open_xml(f)
    node = filter_manifest(node, filters)
    serialize_manifest(node, output)
コード例 #4
0
ファイル: cleanup.py プロジェクト: jhford/manifest-utilities
def cleanup(f, output, filters):
    node = open_xml(f)
    if filters:
        node = filter_manifest(node, filters)
    tidy_remotes(node)
    serialize_manifest(node, output)