Add a utility for creating a 'user@hostname' string.
parent
cce8785f39
commit
bf591c2dd0
34
src/_util.py
34
src/_util.py
|
@ -22,6 +22,7 @@ Extra utilities for python-gnupg.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from socket import gethostname
|
||||||
|
|
||||||
import codecs
|
import codecs
|
||||||
import encodings
|
import encodings
|
||||||
|
@ -173,6 +174,39 @@ def _create_if_necessary(directory):
|
||||||
log.debug("Created directory.")
|
log.debug("Created directory.")
|
||||||
return True
|
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):
|
def _find_binary(binary=None):
|
||||||
"""Find the absolute path to the GnuPG binary.
|
"""Find the absolute path to the GnuPG binary.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue