]> nos-oignons.net Git - gestion-adh.git/blobdiff - bin/pre-receive-hook
Implement pre-receive hook
[gestion-adh.git] / bin / pre-receive-hook
diff --git a/bin/pre-receive-hook b/bin/pre-receive-hook
new file mode 100755 (executable)
index 0000000..46500b0
--- /dev/null
@@ -0,0 +1,22 @@
+#!/usr/bin/ruby1.9.1
+#-*- coding: utf-8 -*-
+
+require 'rubygems'
+require 'bundler'
+Bundler.setup
+
+require 'nos_oignons/git'
+require 'nos_oignons/subscriptions'
+
+$stdin.readlines.each do |ref_line|
+  old_value, new_value, ref_name = ref_line.rstrip.split(' ', 3)
+  IO.popen(['git', 'diff', '--name-status', "#{old_value}..#{new_value}"]) do |io|
+    handle_modified_files(io) do |file|
+      next unless file.start_with?("#{SUBSCRIPTIONS_ROOT}/")
+      if !is_valid_subscription_file?(new_value, file)
+        $stderr.puts "Désolé : #{file} n'a pas le bon format !"
+        exit 1
+      end
+    end
+  end
+end