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
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
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
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
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
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
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