#!/bin/bash
# This script is copyright Oz N Tiram <nahumoz@gmail.com>
# It is distributed under the terms of GPLv3

# EDIT THE FOLLOWING VARIABLES TO FIT YOUR NEEDS
# THE KEY SHOULD ALSO BE KNOWN ON THE SERVER THAT LISTENS TO SUBMITS
SECRET_KEY=VERYSECRETLONGKEYYOUSHOULDDEFINITELYEDIT
SUBMIT_HOST=192.168.1.100
SUBMIT_PORT=5000
GITURL="git@yourhost.domain:oz123/frank.git"


JSON_TO_SUBMIT=""

for HEAD in $@; do  
	# We love bash too, but there a really fancy basename 
	BRANCH=`basename $HEAD`
	# CUT, UNIX, No bash
	# BRANCH=$(echo $HEAD |cut -d / -f 3)
	# FUCK, BASHSIMS
	#echo $HEAD
	#IFS="/"
	#BRANCH=($HEAD)
	#BRANCH=${BRANCH[2]}
	REST_OF_JSON=$(git --no-pager log -n 1 --format='{"hashes":{"commit":"%H", "tree":"%T", "parents":"%P" }, "author":{"date": "%ai", "name":"%an", "email":"%ae" }, "committer":{"date": "%ci", "name": "%cn", "email":"%ce" }')
	REST_OF_JSON=$REST_OF_JSON,\"branch\":\""${BRANCH}"\"
	#REST_OF_JSON=$REST_OF_JSON,\"giturl\":\"$GITURL\""}"
	JSON_TO_SUBMIT=$JSON_TO_SUBMIT{\"$BRANCH\":$REST_OF_JSON\}
	JSON_TO_SUBMIT=$JSON_TO_SUBMIT,\\n
	REST_OF_JSON=""
done

# Calculate the digest of JSON
SECRET=$(echo -n $JSON_TO_SUBMIT | openssl dgst -sha1 -hmac $SECRET_KEY)
SECRET=`echo $SECRET | cut -d'=' -f2`
# TODO: Consider submiting to HTTPS!
curl  -H "Content-Type: application/json" -H "X-Secret:${SECRET}" -X POST http://${SUBMIT_HOST}:${SUBMIT_PORT}/ -d ${JSON_TO_SUBMIT}