#!/usr/bin/env python
#-*- coding: utf-8 -*-

"""A post-update Git hook to execute `composer install` when composer.json changes

:Author: Cody Halovich
:Company: HootSuite Media Inc.
"""

import subprocess
import string
import os

HOOK_DIR = os.path.dirname(os.path.realpath(__file__))
ROOT_DIR = os.path.dirname(os.path.dirname(HOOK_DIR))

def getChangeList():
    """Retrieve the active Git change-list
    """
    files = subprocess.Popen(['git', 'diff', '--name-status', 'master@{1}'], stdout=subprocess.PIPE)
    results = files.stdout.read()
    return results

def main():
    """Update composer if `composer.lock` exists in the active change-list 
    """
    if getChangeList().find('composer.lock') > 0:
        os.chdir(ROOT_DIR)
        subprocess.Popen([ROOT_DIR + 'composer.phar', 'install'])

if __name__ == '__main__':
    main()