From 87edaa971947f4f29acf1db1df6980cc778f7b14 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sat, 10 Sep 2016 09:47:54 +0200 Subject: First commit. --- pre-push | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ proxy.php | 37 +++++++++++++++++++++++++++++++++++++ proxy.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100755 pre-push create mode 100755 proxy.php create mode 100644 proxy.py diff --git a/pre-push b/pre-push new file mode 100755 index 0000000..c683ce1 --- /dev/null +++ b/pre-push @@ -0,0 +1,59 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +SERVER="XXX" + +remote="$1" +url="$2" + +z40=0000000000000000000000000000000000000000 + +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = $z40 ] + then + # Handle delete + : + + else + + if [ "$remote_sha" = $z40 ] + then + # New branch, examine all commits + range="$local_sha" + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + git log --format='%s (%h)' "$range" --reverse | while read line; do + + msg=$( echo "[git] New commit: $line" | sed 's/ /%20/g' ) + + wget -O /dev/null http://$SERVER/proxy.php?msg=$msg > /dev/null 2>&1 + + done + + fi + +done + +exit 0 diff --git a/proxy.php b/proxy.php new file mode 100755 index 0000000..149a1fa --- /dev/null +++ b/proxy.php @@ -0,0 +1,37 @@ + + + + + + PHP Proxy + + + + + + +\n"; + else + echo "Socket OK.
\n"; + + $result = socket_connect($socket, "localhost", 54321); + + if ($result === false) + echo "socket_connect() failed: ($result) " . socket_strerror(socket_last_error($socket)) . "
\n"; + else + echo "Connect OK.
\n"; + + socket_write($socket, $_GET["msg"], strlen($_GET["msg"])); + + echo "Data sent!
\n"; + echo "Content: '" . $_GET["msg"] . "'."; + +?> + + + + diff --git a/proxy.py b/proxy.py new file mode 100644 index 0000000..ba5ac36 --- /dev/null +++ b/proxy.py @@ -0,0 +1,60 @@ +import select +import socket +import string + +LOCAL_PORT = 54321 + +HOST = 'irc.oftc.net' +PORT = 6667 +NICK = 'CommitBot' +IDENT = 'chrysalidecommitbot' +REALNAME = 'CommitBot' + +CHANNEL = '#chrysalide' + +local_fd = socket.socket() +local_fd.bind(('127.0.0.1', LOCAL_PORT)) +local_fd.listen(1) + +print('Listeing...') + +irc_fd = socket.socket() +irc_fd.connect((HOST, PORT)) + +irc_fd.send('NICK %s\r\n' % NICK) +irc_fd.send('USER %s %s bla :%s\r\n' % (IDENT, HOST, REALNAME)) + +print('Connected to IRC...') + +irc_fd.send('JOIN ' + CHANNEL + '\r\n') + +print('Online!') + +while True: + + ready_socks, _, _ = select.select([local_fd, irc_fd], [], []) + + if local_fd in ready_socks: + + conn, addr = local_fd.accept() + print 'Got data from ' + addr[0] + ':' + str(addr[1]) + + data = conn.recv(1024) + irc_fd.send('PRIVMSG ' + CHANNEL + ' :' + data + '\r\n') + + conn.close() + + else: + + data = irc_fd.recv(1024) + + for line in data.split('\n'): + + line = string.rstrip(line) + line = string.split(line) + + if len(line) == 0: + continue + + if line[0] == "PING": + irc_fd.send("PONG %s\r\n" % line[1]) -- cgit v0.11.2-87-g4458