Пример #1
0
def search_for_bug(module):
    if isinstance(module, _Npm2Deb):
        module = module.debian_name
    else:
        module = 'node-%s' % _debianize_name(module)

    my_print('Looking for wnpp bugs:')
    _debug(1, "calling wnpp-check")
    info = _getstatusoutput('wnpp-check %s' % module)
    if info[0] == 0:
        my_print('  None')
        return []
    else:
        lines = info[1].split('\n')
        formatted = "  #{0}  {1:>3}:  {2:25} -- {3}"
        result = []
        for line in lines:
            try:
                bug = {}
                match = _re.match('\((.*) - #(\d+).*\) (.*) (.*)$', line)
                bug['num'] = match.group(2)
                bug['type'] = match.group(1)
                bug['package'] = match.group(4)
                bug['url'] = match.group(3)
                result.append(bug)
                my_print(
                    formatted.format(bug["num"], bug["type"], bug["package"],
                                     bug["url"]))
            except:
                continue
        return result
Пример #2
0
def search_for_repository(module):
    if isinstance(module, _Npm2Deb):
        module = module.debian_name
    else:
        module = 'node-%s' % _debianize_name(module)

    formatted = "  {0:40} -- {1}"
    found = False
    result = {}

    my_print("Looking for existing repositories on salsa.debian.org:")
    data = json.loads(
        _urlopen(
            "https://salsa.debian.org/groups/js-team/-/children.json?filter=%s"
            % module).read())
    if len(data) > 0:
        found = True
        for repo in data:
            name = repo['name']
            description = repo['description']
            result[name] = description
            my_print(formatted.format(name, description))
    if not found:
        my_print("  None")
    return result
Пример #3
0
def search_for_bug(module):
    if isinstance(module, _Npm2Deb):
        module = module.debian_name
    else:
        module = 'node-%s' % _debianize_name(module)

    my_print('Looking for wnpp bugs:')
    _debug(1, "calling wnpp-check")
    info = _getstatusoutput('wnpp-check %s' % module)
    if info[0] == 0:
        my_print('  None')
        return []
    else:
        lines = info[1].split('\n')
        formatted = "  #{0}  {1:>3}:  {2:25} -- {3}"
        result = []
        for line in lines:
            try:
                bug = {}
                match = _re.match('\\((.*) - #(\\d+).*\\) (.*) (.*)$', line)
                bug['num'] = match.group(2)
                bug['type'] = match.group(1)
                bug['package'] = match.group(4)
                bug['url'] = match.group(3)
                result.append(bug)
                my_print(formatted.format(bug["num"],
                                          bug["type"],
                                          bug["package"],
                                          bug["url"]))
            except:
                continue
        return result
Пример #4
0
def search_for_repository(module):
    if isinstance(module, _Npm2Deb):
        module = module.debian_name
    else:
        module = 'node-%s' % _debianize_name(module)

    repositories = ['collab-maint', 'pkg-javascript']
    formatted = "  {0:40} -- {1}"
    found = False
    result = {}
    my_print("Looking for existing repositories:")
    for repo in repositories:
        _debug(1, "search for %s in %s" % (module, repo))
        url_base = "http://anonscm.debian.org/gitweb"
        data = _urlopen("%s/?a=project_list&pf=%s&s=%s" %
                        (url_base, repo, module)).read()
        dom = _minidom.parseString(data)
        for row in dom.getElementsByTagName('tr')[1:]:
            try:
                columns = row.getElementsByTagName('td')
                name = columns[0].firstChild.getAttribute('href')\
                    .split('.git')[0].split('?p=')[1]
                description = columns[1].firstChild.getAttribute('title')
                found = True
                result[name] = description
                my_print(formatted.format(name, description))
            except:
                continue
    if not found:
        my_print("  None")
    return result
Пример #5
0
    def get_debian_package(self, node_module):
        result = {}
        result['info'] = None
        result['name'] = None
        result['version'] = None
        result['suite'] = None
        result['repr'] = None
        db_package = None

        if node_module in self.json:
            db_package = self.json[node_module]
        else:
            for pattern in self.json.keys():
                if _fnmatch(node_module, pattern):
                    db_package = self.json[pattern]
                    break

        if db_package:
            if 'replace' in db_package:
                result['name'] = db_package['replace']
            if 'info' in db_package:
                result['info'] = ('info', db_package['info'])
                self.append_warning('info', node_module, db_package['info'])
            elif 'warning' in db_package:
                result['info'] = ('warning', db_package['warning'])
                self.append_warning('warning', node_module,
                                    db_package['warning'])
            elif 'error' in db_package:
                result['info'] = ('error', db_package['error'])
                self.append_warning('error', node_module, db_package['error'])
        else:
            result['name'] = 'node-%s' % _debianize_name(node_module)

        if not result['name']:
            return result

        data = _urlopen(MADISON_URL % result['name']).read().decode('utf-8')
        packages = _parseJSON(data)
        if len(packages) < 1:
            result['name'] = None
            return result
        result['version'] = '0:0'
        for suite, versions in packages[0][result['name']].items():
            for version, source in versions.items():
                if apt_pkg.version_compare(version, result['version']) > 0:
                    result['version'] = version
                    result['suite'] = suite
                    result['name'] = source['source']
                    result['repr'] = '%s (%s)' % (result['name'],
                                                  result['version'])
        result['version'] = result['version']
        if result['version'] == '0:0':
            result['version'] = None

        return result
Пример #6
0
    def get_debian_package(self, node_module):
        result = {}
        result['info'] = None
        result['name'] = None
        result['version'] = None
        result['suite'] = None
        result['repr'] = None
        db_package = None

        if node_module in self.json:
            db_package = self.json[node_module]
        else:
            for pattern in self.json.keys():
                if _fnmatch(node_module, pattern):
                    db_package = self.json[pattern]
                    break

        if db_package:
            if 'replace' in db_package:
                result['name'] = db_package['replace']
            if 'info' in db_package:
                result['info'] = ('info', db_package['info'])
                self.append_warning('info', node_module, db_package['info'])
            elif 'warning' in db_package:
                result['info'] = ('warning', db_package['warning'])
                self.append_warning('warning', node_module,
                                    db_package['warning'])
            elif 'error' in db_package:
                result['info'] = ('error', db_package['error'])
                self.append_warning('error', node_module, db_package['error'])
        else:
            result['name'] = 'node-%s' % _debianize_name(node_module)

        if not result['name']:
            return result

        madison = _getstatusoutput('rmadison -u debian "%s" | grep source' %
                                   result['name'])

        if madison[0] != 0:
            result['name'] = None
            return result

        tmp = madison[1].split('|')
        if len(tmp) >= 2:
            result['name'] = tmp[0].strip()
            result['version'] = tmp[1].strip()
            result['suite'] = tmp[2].strip()
            result['repr'] = '%s (%s)' % (result['name'], result['version'])

        return result
Пример #7
0
def search_for_repository(module):
    if isinstance(module, _Npm2Deb):
        module = module.debian_name
    else:
        module = 'node-%s' % _debianize_name(module)

    formatted = "  {0:40} -- {1}"
    found = False
    result = {}

    my_print("Looking for existing repositories on salsa.debian.org:")
    data = json.loads(_urlopen(
        "https://salsa.debian.org/groups/js-team/-/children.json?filter=%s" % module).read())
    if len(data) > 0:
        found = True
        for repo in data:
            name = repo['name']
            description = repo['description']
            result[name] = description
            my_print(formatted.format(name, description))
    if not found:
        my_print("  None")
    return result