diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-10-20 21:07:34 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-10-20 21:07:34 -0700 |
commit | 0966be903d19dd9999568de3baa3f9815e1e4369 (patch) | |
tree | 794024f278af81e4e72588bd2a50a664acb61d65 /pym | |
parent | 44a03c9f2218ae7cfdc03aae495d255e0ca2e5b1 (diff) | |
download | portage-0966be903d19dd9999568de3baa3f9815e1e4369.tar.gz portage-0966be903d19dd9999568de3baa3f9815e1e4369.tar.bz2 portage-0966be903d19dd9999568de3baa3f9815e1e4369.zip |
UpdateChangeLog: split out get_committer_name()
Diffstat (limited to 'pym')
-rw-r--r-- | pym/repoman/utilities.py | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/pym/repoman/utilities.py b/pym/repoman/utilities.py index c1a9da84a..0ecc92cc7 100644 --- a/pym/repoman/utilities.py +++ b/pym/repoman/utilities.py @@ -16,6 +16,7 @@ __all__ = [ "format_qa_output", "get_commit_message_with_editor", "get_commit_message_with_stdin", + "get_committer_name", "have_profile_dir", "parse_metadata_use", "UnknownHerdsError", @@ -588,30 +589,34 @@ def update_copyright(fn_path, year, pretend): util.apply_stat_permissions(fn_path, fn_stat) fn_hdl.close() -def UpdateChangeLog(pkgdir, category, package, new, removed, changed, \ - msg, pretend, repodir): +def get_committer_name(env=None): + """Generate a committer string like echangelog does.""" + if env is None: + env = os.environ + if 'GENTOO_COMMITTER_NAME' in env and \ + 'GENTOO_COMMITTER_EMAIL' in env: + user = '%s <%s>' % (env['GENTOO_COMMITTER_NAME'], + env['GENTOO_COMMITTER_EMAIL']) + elif 'GENTOO_AUTHOR_NAME' in env and \ + 'GENTOO_AUTHOR_EMAIL' in env: + user = '%s <%s>' % (env['GENTOO_AUTHOR_NAME'], + env['GENTOO_AUTHOR_EMAIL']) + elif 'ECHANGELOG_USER' in env: + user = env['ECHANGELOG_USER'] + else: + pwd_struct = pwd.getpwuid(os.getuid()) + gecos = pwd_struct.pw_gecos.split(',')[0] # bug #80011 + user = '%s <%s@gentoo.org>' % (gecos, pwd_struct.pw_name) + return user + +def UpdateChangeLog(pkgdir, user, msg, skel_path, category, package, + new=(), removed=(), changed=(), pretend=False): """ Write an entry to an existing ChangeLog, or create a new one. Updates copyright year on changed files, and updates the header of ChangeLog with the contents of skel.ChangeLog. """ - # figure out who to write as - if 'GENTOO_COMMITTER_NAME' in os.environ and \ - 'GENTOO_COMMITTER_EMAIL' in os.environ: - user = '%s <%s>' % (os.environ['GENTOO_COMMITTER_NAME'], \ - os.environ['GENTOO_COMMITTER_EMAIL']) - elif 'GENTOO_AUTHOR_NAME' in os.environ and \ - 'GENTOO_AUTHOR_EMAIL' in os.environ: - user = '%s <%s>' % (os.environ['GENTOO_AUTHOR_NAME'], \ - os.environ['GENTOO_AUTHOR_EMAIL']) - elif 'ECHANGELOG_USER' in os.environ: - user = os.environ['ECHANGELOG_USER'] - else: - pwd_struct = pwd.getpwuid(os.getuid()) - gecos = pwd_struct.pw_gecos.split(',')[0] # bug #80011 - user = '%s <%s@gentoo.org>' % (gecos, pwd_struct.pw_name) - if '<root@' in user: err = 'Please set ECHANGELOG_USER or run as non-root' logging.critical(err) @@ -647,8 +652,7 @@ def UpdateChangeLog(pkgdir, category, package, new, removed, changed, \ # we will only need the ChangeLog skeleton if there is no # ChangeLog yet try: - clskel_path = os.path.join(repodir, 'skel.ChangeLog') - clskel_file = io.open(_unicode_encode(clskel_path, + clskel_file = io.open(_unicode_encode(skel_path, encoding=_encodings['fs'], errors='strict'), mode='r', encoding=_encodings['repo.content'], errors='replace') |