#!/usr/bin/env python

"""
Convert a UUID from/to various forms. Can take input as a base64-encoded
string, and integer, or the hex string representation. Outputs all three
back to the terminal.
"""

import base64
import uuid

from optparse import OptionParser

parser = OptionParser(**{
    'usage': 'Usage: %prog [options] [GUID]',
    'version': '1.0'
})

options, args = parser.parse_args()

if not len(args):
    guid = uuid.uuid4()
else:
    if args[0].isdigit():
        guid = uuid.UUID(int=int(args[0]))
    elif len(args[0]) == 24:
        guid = uuid.UUID(bytes_le=base64.b64decode(args[0]))
    else:
        guid = uuid.UUID(args[0])

print 'hex: ' + str(guid)
print 'int: ' + str(guid.int)
print 'b64: ' + base64.b64encode(guid.bytes_le)
