Implements do_hook function

Signed-off-by: Peter van der Does <peter@avirtualhome.com>
Signed-off-by: Vincent Driessen <vincent@3rdcloud.com>
diff --git a/gitflow-common b/gitflow-common
index 6c6dae7..776eb3c 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -53,7 +53,7 @@
 	local item=$1; shift
 	echo " $@ " | grep -q " $(escape $item) "
 }
-
+	
 # basic math
 min() { [ "$1" -le "$2" ] && echo "$1" || echo "$2"; }
 max() { [ "$1" -ge "$2" ] && echo "$1" || echo "$2"; }
@@ -323,3 +323,24 @@
 		fi
 	fi
 }
+
+do_hook() {
+	local prefix="$1"
+	local return_code=0
+	
+	if [ -z $prefix ]; then
+		die "Hook implementation error - No prefix given"
+	fi
+	if [ $prefix != "pre" ] && [ $prefix != "post" ]; then
+		die "Hook implementation error - Bad Prefix"
+	fi
+	
+	if [ -x ${GITFLOW_CONF_DIR_HOOKS}${prefix}_${SUBCOMMAND}_${SUBACTION} ]; then
+		${GITFLOW_CONF_DIR_HOOKS}${prefix}_${SUBCOMMAND}_${SUBACTION}
+		return_code=$?	
+	fi
+	
+	if [ $return_code -gt 0 ]; then
+		die "Hook command ${prefix}_${SUBCOMMAND}_${SUBACTION} failed. Exit code $return_code"
+	fi
+}
\ No newline at end of file