#!/usr/bin/env python3
"""Output a logging timestamp."""
import os
import sys
def ensure_directory(directory):
"""Create a directory. If it already exists, don't stress about it."""
try:
os.mkdir(directory)
except (OSError, 17):
pass
def hex_nybble(nybble):
"""Return a single hex digit."""
return '0123456789abcdef'[nybble]
def hex_byte(byte):
"""Return a single hex byte."""
return '%s%s' % (hex_nybble(byte // 16), hex_nybble(byte & 0xf))
def random_string():
"""Return a random number in hexadecimal."""
with open('/dev/urandom', 'rb') as file_:
bytes_ = file_.read(16)
result = []
for byte in bytes_:
result.append(hex_byte(byte))
return ''.join(result)
# note the relative paths!
# hcm is going to chdir to ~/.hcm/logs - if something else cd's away
# from there, these are going to go to the wrong place
# ensure_directory(time.strftime('%Y'))
# ensure_directory(time.strftime('%Y/%m'))
# ensure_directory(time.strftime('%Y/%m/%d'))
def main():
"""Output a logging timestamp."""
if sys.argv[1:]:
path = '%s' % sys.argv[1].replace('!', '-')
else:
path = ''
print('%s-R%s' % (path, random_string()))
main()