#!/usr/bin/python3 -u

import glob
import imp
import os
import sys
import subprocess


data = sys.stdin.readlines()

if (os.path.isdir('hooks/post-receive.d')):
    for hook in os.listdir('hooks/post-receive.d'):
        hook = os.path.join('hooks/post-receive.d', hook)
        if (hook.endswith(('~','.bak','.rpmsave','.rpmnew')) or
                not (os.path.isfile(hook) and os.access(hook, os.X_OK))):
            continue
        hook_process = subprocess.Popen([hook], stdin=subprocess.PIPE)
        try:
            for line in data:
                hook_process.stdin.write(line.encode('utf-8'))
        except IOError:
            pass
        hook_process.communicate()

for pluginfile in glob.glob('hooks/post-receive.python.d/*.py'):
    plugin = imp.load_source(os.path.basename(pluginfile), pluginfile)
    plugin.run(data)
