Example #1
0
def get_loaded_distros(name, distros):
    loaded_distro_names = []
    for distro in distro_names:
        try:
            load_package_manifest(name, distro)
            loaded_distro_names.append(distro)
        except UtilException, e:
            pass
Example #2
0
def generate_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        # something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    repo_name = get_repo_name(data, package_name, opt_distro)

    # try to load devel job info (but don't complain if it can't be found or loaded,
    # as not all devel jobs have been updated (so the results yaml may not exist)
    try:
        devel_job_data = load_repo_devel_job_data(repo_name, opt_distro)
        data.update(devel_job_data)
    except:
        pass

    nav = []
    # Check to see if the package is a metapackage or a stack
    package_type = data.get('package_type', 'package')
    is_metapackage = package_type in ['stack', 'metapackage']

    if is_metapackage:
        nav.append(get_nav(macro, package_name, list(set(data.get('packages', []))), distro=opt_distro))
    else:
        metapackages = data.get('metapackages', None)
        if metapackages and package_name != 'catkin':
            for metapackage in metapackages:
                try:
                    metapackage_data = load_package_manifest(metapackage, opt_distro)
                    nav.append(
                        get_nav(macro, metapackage, list(set(metapackage_data.get('packages', []))), distro=opt_distro)
                    )
                    metapackage_type = metapackage_data.get('package_type', None)
                    if metapackage_type == 'stack':
                        stack_name = metapackage
                except UtilException:
                    continue

    desc = get_description(macro, data, 'package')
    links = get_package_links(macro, package_name, data, opt_distro, repo_name=repo_name, metapackage=is_metapackage)

    html = '<br><br>'.join([macro.formatter.rawHTML(item) for item in nav])
    if html:
        html = html + '<br>'

    return html + links + desc
Example #3
0
def generate_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        # something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    nav = []
    # Check to see if the package is a metapackage or a stack
    package_type = data.get('package_type', 'package')
    is_metapackage = package_type in ['stack', 'metapackage']

    if is_metapackage:
        nav.append(get_nav(macro, package_name, list(set(data.get('packages', []))), distro=opt_distro))
    else:
        metapackages = data.get('metapackages', None)
        if metapackages and package_name != 'catkin':
            for metapackage in metapackages:
                try:
                    metapackage_data = load_package_manifest(metapackage, opt_distro)
                    nav.append(
                        get_nav(macro, metapackage, list(set(metapackage_data.get('packages', []))), distro=opt_distro)
                    )
                    metapackage_type = metapackage_data.get('package_type', None)
                    if metapackage_type == 'stack':
                        stack_name = metapackage
                except UtilException:
                    continue

    repo_name = get_repo_name(data, package_name, opt_distro)

    desc = get_description(macro, data, 'package')
    links = get_package_links(macro, package_name, data, opt_distro, repo_name=repo_name, metapackage=is_metapackage)

    html = '<br><br>'.join([macro.formatter.rawHTML(item) for item in nav])
    if html:
        html = html + '<br>'

    return html + links + desc
Example #4
0
def get_repo_name(data, package_name, opt_distro):
    package_type = data.get('package_type', 'package')
    if package_type == 'stack':
        stack_name = package_name
    else:
        stack_name = ''

    metapackages = data.get('metapackages', None)
    if metapackages and package_name != 'catkin':
        for metapackage in metapackages:
            try:
                metapackage_data = load_package_manifest(
                    metapackage, opt_distro)
                metapackage_type = metapackage_data.get('package_type', None)
                if metapackage_type == 'stack':
                    stack_name = metapackage
            except UtilException:
                continue

    # Get the correct repo name based on local name being written to manifest
    if stack_name:
        repo_name = stack_name
    elif 'repo_name' in data:
        repo_name = data['repo_name']
    elif 'vcs_url' in data:
        repo_name = os.path.splitext(os.path.basename(data['vcs_url']))[0]
    else:
        repo_name = os.path.splitext(os.path.basename(data['vcs_uri']))[0]

    return repo_name
Example #5
0
def generate_old_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException as e:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    stack_name = data.get('stack', None)
    nav = get_nav(macro,
                  stack_name,
                  list(set(data.get('siblings', []))),
                  distro=opt_distro)
    desc = get_description(macro, data, 'package')
    links = get_package_links(macro, package_name, data, opt_distro)

    return macro.formatter.rawHTML(nav) + '<br><br>' + links + desc
Example #6
0
def get_repo_name(data, package_name, opt_distro):
    package_type = data.get('package_type', 'package')
    if package_type == 'stack':
        stack_name = package_name
    else:
        stack_name = ''

    metapackages = data.get('metapackages', None)
    if metapackages and package_name != 'catkin':
        for metapackage in metapackages:
            try:
                metapackage_data = load_package_manifest(metapackage, opt_distro)
                metapackage_type = metapackage_data.get('package_type', None)
                if metapackage_type == 'stack':
                    stack_name = metapackage
            except UtilException:
                continue

    # Get the correct repo name based on local name being written to manifest
    if stack_name:
        repo_name = stack_name
    elif 'repo_name' in data:
        repo_name = data['repo_name']
    elif 'vcs_url' in data:
        repo_name = os.path.splitext(os.path.basename(data['vcs_url']))[0]
    else:
        repo_name = os.path.splitext(os.path.basename(data['vcs_uri']))[0]

    return repo_name
Example #7
0
def doc_html(distros, package_name):
    doc_html = (
        '<div id="doc_status_link" '
        'style="margin-bottom:10px">'
        '<span style="text-align:left">'
        '<a href="javascript:toggleDocStatus()">'
        'Documentation Status'
        '</a>'
        '</span>'
        '</div>'
    )
    doc_html += (
        '<div id="doc_status" '
        'style="background:#CCCCCC;display:none;margin-top:0px;margin-bottom:0px;padding-top:0px">'
        '<ul style="padding-top:5px;margin-top:0px;margin-bottom:0px;padding-bottom:5px;">'
    )
    for distro in distros:
        doc_html += '<li><b>%s:</b> ' % distro
        try:
            data = load_package_manifest(package_name, distro)
            repo_name = get_repo_name(data, package_name, distro)
            doc_string = get_doc_status(distro, repo_name, data)
            doc_html += doc_string
        except UtilException:
            name = "name: %s, distro: %s" % (package_name, distro)
            doc_html += CONTRIBUTE_TMPL % locals()
        doc_html += '</li><br>'
    doc_html += '</div>'
    return doc_html
Example #8
0
def doc_html(distros, package_name):
    doc_html = ('<div id="doc_status_link" '
                'style="margin-bottom:10px">'
                '<span style="text-align:left">'
                '<a href="javascript:toggleDocStatus()">'
                'Documentation Status'
                '</a>'
                '</span>'
                '</div>')
    doc_html += (
        '<div id="doc_status" '
        'style="background:#CCCCCC;display:none;margin-top:0px;margin-bottom:0px;padding-top:0px">'
        '<ul style="padding-top:5px;margin-top:0px;margin-bottom:0px;padding-bottom:5px;">'
    )
    for distro in distros:
        doc_html += '<li><b>%s:</b> ' % distro
        try:
            data = load_package_manifest(package_name, distro)
            repo_name = get_repo_name(data, package_name, distro)
            doc_string = get_doc_status(distro, repo_name, data)
            doc_html += doc_string
        except UtilException:
            name = "name: %s, distro: %s" % (package_name, distro)
            doc_html += CONTRIBUTE_TMPL % locals()
        doc_html += '</li><br>'
    doc_html += '</div>'
    return doc_html
Example #9
0
def generate_old_stack_header(macro, stack_name, opt_distro=None):
    try:
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException as e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    packages = data.get('packages', [])
    is_unary = [stack_name] == packages

    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages, distro=opt_distro)
    links = get_stack_links(macro, stack_name, data, packages, is_unary,
                            opt_distro)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, opt_distro)
            links += get_package_links(macro, stack_name, package_data,
                                       opt_distro, None)
        except:
            pass

    return macro.formatter.rawHTML(nav) + '<br><br>' + macro.formatter.rawHTML(
        links) + desc
Example #10
0
def macro_PackageHeader2(macro, arg1, arg2='en'):
    package_name = get_unicode(macro.request, arg1)
    lang = get_unicode(macro.request, arg2)
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_lang)]]"    

    try:
        data = load_package_manifest(package_name, lang)
    except UtilException, e:
        name = package_name
        return CONTRIBUTE_TMPL%locals()
Example #11
0
def generate_old_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()
Example #12
0
def generate_old_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"    
    if ' ' in package_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL%locals()
Example #13
0
def macro_PackageHeader(macro, arg1, arg2=None):
    package_name = get_unicode(macro.request, arg1)
    opt_distro = get_unicode(macro.request, arg2)
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException, e:
        name = package_name
        return CONTRIBUTE_TMPL % locals()
Example #14
0
def get_repo_name(data, package_name, opt_distro):
    package_type = data.get('package_type', 'package')
    if package_type == 'stack':
        stack_name = package_name
    else:
        stack_name = ''

    metapackages = data.get('metapackages', None)
    if metapackages and package_name != 'catkin':
        for metapackage in metapackages:
            try:
                metapackage_data = load_package_manifest(metapackage, opt_distro)
                metapackage_type = metapackage_data.get('package_type', None)
                if metapackage_type == 'stack':
                    stack_name = metapackage
            except UtilException, e:
                continue
Example #15
0
def macro_PackageHeader(macro, arg1, arg2=None):
    package_name = get_unicode(macro.request, arg1)
    opt_distro = get_unicode(macro.request, arg2)
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"    
    if ' ' in package_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException, e:
        name = package_name
        return CONTRIBUTE_TMPL%locals()
Example #16
0
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')
        if len(splits) > 2:
            return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"
        stack_name, lang = splits
    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"

    try:
        data = load_stack_manifest(stack_name, lang)
    except UtilException, e:
        name = stack_name
        return CONTRIBUTE_TMPL%locals()
  
    packages = data.get('packages', [])
    is_unary = [stack_name] == packages
    
    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages)
    links = get_stack_links(macro, stack_name, data, packages, is_unary)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, lang)
            links += get_package_links(macro, stack_name, package_data)
        except:
            pass

    return macro.formatter.rawHTML(nav) + macro.formatter.rawHTML(links) + desc
  
Example #17
0
def generate_package_header(macro, package_name, opt_distro=None):
    if not package_name:
        return "ERROR in PackageHeader. Usage: [[PackageHeader(package_name opt_distro)]]"
    if ' ' in package_name:
        # something changed in the API such that the above arg1, arg2 passing no longer works
        splits = package_name.split(' ')
        if len(splits) > 2:
            return "ERROR in PackageHeader. Usage: [[PackageHeader(pkg_name opt_distro)]]"
        package_name, distro = splits

    try:
        data = load_package_manifest(package_name, opt_distro)
    except UtilException:
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    repo_name = get_repo_name(data, package_name, opt_distro)

    # try to load devel job info (but don't complain if it can't be found or loaded,
    # as not all devel jobs have been updated (so the results yaml may not exist)
    try:
        devel_job_data = load_repo_devel_job_data(repo_name, opt_distro)
        data.update(devel_job_data)
    except:
        pass

    # try to load test result / report info
    # (but don't complain if none can be be found,
    # as not all packages include test result reports)
    try:
        reports_data = get_repo_reports_data(repo_name, opt_distro)
        data.update(reports_data)
    except:
        pass

    nav = []
    # Check to see if the package is a metapackage or a stack
    package_type = data.get('package_type', 'package')
    is_metapackage = package_type in ['stack', 'metapackage']

    if is_metapackage:
        nav.append(
            get_nav(macro,
                    package_name,
                    list(set(data.get('packages', []))),
                    distro=opt_distro))
    else:
        metapackages = data.get('metapackages', None)
        if metapackages and package_name != 'catkin':
            for metapackage in metapackages:
                try:
                    metapackage_data = load_package_manifest(
                        metapackage, opt_distro)
                    nav.append(
                        get_nav(macro,
                                metapackage,
                                list(set(metapackage_data.get('packages',
                                                              []))),
                                distro=opt_distro))
                    metapackage_type = metapackage_data.get(
                        'package_type', None)
                    if metapackage_type == 'stack':
                        stack_name = metapackage
                except UtilException:
                    continue

    desc = get_description(macro, data, 'package')
    links = get_package_links(macro,
                              package_name,
                              data,
                              opt_distro,
                              repo_name=repo_name,
                              metapackage=is_metapackage)

    html = '<br><br>'.join([macro.formatter.rawHTML(item) for item in nav])
    if html:
        html = html + '<br>'

    return html + links + desc
Example #18
0
    try:
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL%locals()
  
    packages = data.get('packages', [])
    is_unary = [stack_name] == packages
    
    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages, distro=opt_distro)
    links = get_stack_links(macro, stack_name, data, packages, is_unary, opt_distro)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, opt_distro)
            links += get_package_links(macro, stack_name, package_data, opt_distro, None)
        except:
            pass

    return macro.formatter.rawHTML(nav) + '<br><br>' + macro.formatter.rawHTML(links) + desc

def macro_StackHeader(macro, arg1, arg2=None):
    stack_name = get_unicode(macro.request, arg1)
    opt_distro = get_unicode(macro.request, arg2)
    if ' ' in stack_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')
        if len(splits) > 2:
            return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"
        stack_name, lang = splits
Example #19
0
    if ' ' in stack_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')
        if len(splits) > 2:
            return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"
        stack_name, lang = splits
    if not stack_name:
        return "ERROR in StackHeader. Usage: [[StackHeader(pkg_name opt_lang)]]"

    try:
        data = load_stack_manifest(stack_name, lang)
    except UtilException, e:
        name = stack_name
        return CONTRIBUTE_TMPL % locals()

    packages = data.get('packages', [])
    is_unary = [stack_name] == packages

    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages)
    links = get_stack_links(macro, stack_name, data, packages, is_unary)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, lang)
            links += get_package_links(macro, stack_name, package_data)
        except:
            pass

    return macro.formatter.rawHTML(nav) + macro.formatter.rawHTML(links) + desc
Example #20
0
        name = "name: %s, distro: %s" % (package_name, opt_distro)
        return CONTRIBUTE_TMPL%locals()

    nav = []
    #Check to see if the package is a metapackage or a stack
    package_type = data.get('package_type', 'package')
    is_metapackage = package_type in ['stack', 'metapackage']

    if is_metapackage:
        nav.append(get_nav(macro, package_name, list(set(data.get('packages', []))), distro=opt_distro))
    else:
        metapackages = data.get('metapackages', None)
        if metapackages and package_name != 'catkin':
            for metapackage in metapackages:
                try:
                    metapackage_data = load_package_manifest(metapackage, opt_distro)
                    nav.append(get_nav(macro, metapackage, list(set(metapackage_data.get('packages', []))), distro=opt_distro))
                    metapackage_type = metapackage_data.get('package_type', None)
                    if metapackage_type == 'stack':
                        stack_name = metapackage
                except UtilException, e:
                    continue

    repo_name = get_repo_name(data, package_name, opt_distro)

    desc = get_description(macro, data, 'package')
    links = get_package_links(macro, package_name, data, opt_distro, repo_name=repo_name, metapackage=is_metapackage)
    
    html = '<br><br>'.join([macro.formatter.rawHTML(item) for item in nav])
    if html:
        html = html + '<br>'
Example #21
0
        data = load_stack_manifest(stack_name, opt_distro)
    except UtilException, e:
        name = "name: %s, distro: %s" % (stack_name, opt_distro)
        return CONTRIBUTE_TMPL % locals()

    packages = data.get('packages', [])
    is_unary = [stack_name] == packages

    desc = get_description(macro, data, 'stack')
    nav = get_nav(macro, stack_name, packages, distro=opt_distro)
    links = get_stack_links(macro, stack_name, data, packages, is_unary,
                            opt_distro)

    if is_unary:
        try:
            package_data = load_package_manifest(stack_name, opt_distro)
            links += get_package_links(macro, stack_name, package_data,
                                       opt_distro, None)
        except:
            pass

    return macro.formatter.rawHTML(nav) + '<br><br>' + macro.formatter.rawHTML(
        links) + desc


def macro_StackHeader(macro, arg1, arg2=None):
    stack_name = get_unicode(macro.request, arg1)
    opt_distro = get_unicode(macro.request, arg2)
    if ' ' in stack_name:
        #something changed in the API such that the above arg1, arg2 passing no longer works
        splits = stack_name.split(' ')