#!/usr/bin/env python

import subprocess
from distutils.spawn import find_executable

def cleanup_self():
    import os, shutil, sys
    from subprocess import call
    call(['git', 'config', '--global', '--unset', 'init.templatedir'])
    call(['git', 'init'])
    sys.exit(0)

def __cowsay_installed():
    try:
        return find_executable('cowsay') is not None
    except:
        return False

try:
    import git_tidbit
except Exception as e:
    print "git-tidbit configuration messed up. please re-install."
    print e
    cleanup_self()

import sys, random, pkgutil
from termcolor import colored

all_modules = [module_name for _, module_name, _ in pkgutil.iter_modules(git_tidbit.__path__)]
module_name = random.choice(all_modules)
m = __import__('git_tidbit.%s' % module_name, fromlist=['get_tidbit'])

try:
    tidbit = m.get_tidbit()
    if __cowsay_installed():
        from pipes import quote
        tidbit = subprocess.Popen('echo %s | cowsay' % quote(tidbit), shell=True, stdout=subprocess.PIPE).communicate()[0]
    print colored(tidbit, 'green')
except Exception as e:
    print colored("Failed to retrieve tidbit.", 'red')
    print colored(e, 'red')
