def _guest_module_name(self): lists = execute_shell("cd %s ; git log -n 20 --pretty=format:%%s %s ; echo" % (self._repo, self._fname)) modules = {} mcount = 0 module = '' capcnt = 0 total = 0 for m in lists: if m.find(":") != -1: if re.match('\w+\s*:\s*\w+\s*- ', m): mname = re.match('\w+\s*:\s*\w+\s*-', m).group(0).strip() else: mname = re.sub(':[^:]*$', "", m).strip() # start with 'Merge ....' if mname.find('Merge ') != -1: continue if len(mname) == 0: continue _ptitle = m.replace(mname, '')[1:].strip() if _ptitle[0] == _ptitle[0].upper(): capcnt += 1 total += 1 if module.find("%s:" % mname) != -1: continue if modules.has_key(mname): modules[mname] += 1 if mcount < modules[mname]: mcount = modules[mname] module = mname elif mname.find("%s:" % module) != -1: # make sure 'module: submodule:' exists at least twice mcount = modules[mname] module = mname else: modules[mname] = 1 if module == '': module = mname if len(module) == 0: module = self._dirname() self._module = module if total < capcnt * 2: self._capitalize = True else: self._capitalize = False return module
def _guest_email_list(self): mailto = [] mailcc = [] nolkml = True skiplkml = False commit_signer = '' commit_signer_list = [] _re_list = [{'cc': ['*****@*****.**', '*****@*****.**'], 'rmto': ['David S. Miller <*****@*****.**>', '"David S. Miller" <*****@*****.**>'], 'rmcc': ['*****@*****.**']}, {'cc': ['*****@*****.**'], 'rmto': [], 'rmcc': ['*****@*****.**']}] lists = execute_shell("cd %s ; /usr/bin/perl ./scripts/get_maintainer.pl -f %s --remove-duplicates --nogit" % (self._repo, self._fname)) for m in lists: # skip User <mail> (commit_signer:1/15=7%) if re.search('\(commit_signer:', m) != None: csm = re.sub('\([^>]*\)$', '', m) if len(commit_signer) == 0: commit_signer = csm commit_signer_list.append(csm) continue m = re.sub('\([^>]*\)$', '', m).strip() if re.search(r'<.*>', m) != None: mailto.append(m) elif re.search('*****@*****.**', m) != None: if len(mailcc) == 0: mailcc.append(m) else: skiplkml = True else: if re.search('@vger.kernel.org', m) != None: nolkml = False if len(m.strip()) != 0: mailcc.append(m) if nolkml == True and skiplkml == True: mailcc.append('*****@*****.**') for rml in _re_list: for cc in rml['cc']: if mailcc.count(cc) != 0: for rto in rml['rmto']: if mailto.count(rto) != 0: mailto.remove(rto) for rcc in rml['rmcc']: if mailcc.count(rcc) != 0: mailcc.remove(rcc) break if mailcc.count('*****@*****.**') != 0 or mailcc.count('*****@*****.**') != 0: if mailcc.count('*****@*****.**') != 0: mailcc.remove('*****@*****.**') if mailto.count('David S. Miller <*****@*****.**>') != 0: mailto.remove('David S. Miller <*****@*****.**>') if mailto.count('"David S. Miller" <*****@*****.**>') != 0: mailto.remove('"David S. Miller" <*****@*****.**>') if len(mailto) == 0 and mailcc.count('*****@*****.**') != 0: mailto.append('David S. Miller <*****@*****.**>') if read_config('git.use_commit_singer', True): for m in commit_signer_list: mailto.append(m) else: if len(mailto) == 0 and len(commit_signer) != 0: mailto.append(commit_signer) elist = "" if len(mailto) != 0: elist += "To: %s" % mailto[0].strip() to = mailto[1:] for t in to: elist += ",\n %s" % t.strip() if len(mailcc) != 0: prefix = 'Cc' # to list may be null if len(mailto) == 0: prefix = 'To' elist += "\n%s: %s" % (prefix, mailcc[0].strip()) cc = mailcc[1:] for c in cc: elist += ",\n %s" % c.strip() elist += '\n' self._mlist = elist return elist