"""
Tools for automating daily tasks.
"""
from fabric.api import local
from fabric.colors import red, green

def i18n_upload():
    """Update source language, and upload to Transifex.
    """
    _debug('django-admin.py makemessages -l en -e py,html -i "thirdpart*"')
    local('django-admin.py makemessages -l en -e py,html -i "thirdpart*"')

    # some version of makemessages will produce "%%" in the string, replace that
    # to "%".
    _inplace_change('locale/en/LC_MESSAGES/django.po', '%%', '%')

    _debug('tx push -s')
    local('tx push -s')

def i18n_pull():
    """Update local po files with Transifex.
    """
    _debug('tx pull')
    local('tx pull')

########## utility functions
def _inplace_change(filename, old_string, new_string):
    s = open(filename).read()
    if old_string in s:
        print(green('Changing "{old_string}" to "{new_string}" in "{filename}"'.format(**locals())))
        s = s.replace(old_string, new_string)
        f = open(filename, 'w')
        f.write(s)
        f.flush()
        f.close()

def _debug(msg):
    print(red('Running: {msg}'.format(**locals())))

Add fabric file