]> nos-oignons.net Git - gestion-adh.git/blob - bin/pre-commit-hook
921c39c79f1c3f0c17eb410737c77482095c31fd
[gestion-adh.git] / bin / pre-commit-hook
1 #!/usr/bin/ruby1.9.1
2 #-*- coding: utf-8 -*-
3
4 require 'rubygems'
5 require 'bundler'
6 Bundler.setup
7
8 require 'nos_oignons/git'
9 require 'nos_oignons/subscriptions'
10
11 if system('git rev-parse --quiet --verify HEAD >/dev/null')
12   against = 'HEAD'
13 else
14   # Initial commit: diff against an empty tree object
15   against = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'
16 end
17
18 IO.popen(['git', 'diff-index', '--cached', '--name-status', against]) do |io|
19   NosOignons::Git.handle_modified_files(io) do |file|
20     next unless file.start_with?("#{NosOignons::SUBSCRIPTIONS_ROOT}/")
21     begin
22       # Use empty ref to get the index
23       NosOignons::Subscription.read_from_git('', file)
24     rescue ArgumentError
25       $stderr.puts "Désolé : #{file} n'a pas le bon format !"
26       exit 1
27     end
28   end
29 end