-
-
Save automaticalldramatic/392006d719fac0b7c494e797d1ef93f8 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 hidden or 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