Created
February 26, 2014 17:12
-
-
Save six0h/9233941 to your computer and use it in GitHub Desktop.
Git Post-Update hook that checks for changes to composer.lock, and fires a composer install if required.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment