Add a utility for creating a 'user@hostname' string.

testing/mmn/mktime_takes_localtime_not_gmtime
Isis Lovecruft 2013-05-27 08:12:54 +00:00
parent cce8785f39
commit bf591c2dd0
No known key found for this signature in database
GPG Key ID: A3ADB67A2CDB8B35
1 changed files with 34 additions and 0 deletions

View File

@ -22,6 +22,7 @@ Extra utilities for python-gnupg.
'''
from datetime import datetime
from socket import gethostname
import codecs
import encodings
@ -173,6 +174,39 @@ def _create_if_necessary(directory):
log.debug("Created directory.")
return True
def create_uid_email(username=None, hostname=None):
"""Create an email address suitable for a UID on a GnuPG key.
:param str username: The username portion of an email address. If None,
defaults to the username of the running Python
process.
:param str hostname: The FQDN portion of an email address. If None, the
hostname is obtained from gethostname(2).
:rtype: str
:returns: A string formatted as <username>@<hostname>.
"""
if hostname:
hostname = hostname.replace(' ', '_')
if not username:
try: username = os.environ['LOGNAME']
except KeyError: username = os.environ['USERNAME']
if not hostname: hostname = gethostname()
uid = "%s@%s" % (username.replace(' ', '_'), hostname)
else:
username = username.replace(' ', '_')
if (not hostname) and (username.find('@') == 0):
uid = "%s@%s" % (username, gethostname())
elif hostname:
uid = "%s@%s" % (username, hostname)
else:
uid = username
return uid
def _find_binary(binary=None):
"""Find the absolute path to the GnuPG binary.