]> nos-oignons.net Git - gestion-adh.git/blobdiff - bin/pre-commit-hook
Remove useless code in pre-commit hook
[gestion-adh.git] / bin / pre-commit-hook
index 713cb6fa33c1b98a7e615f6aa6e71b4eebec9c18..0b46db8bf5dca0b4ec7d3f894d1a0f160f799cf8 100755 (executable)
@@ -8,6 +8,8 @@ Bundler.setup
 require 'safe_yaml'
 SafeYAML::OPTIONS[:default_mode] = :safe
 
+SUBSCRIPTIONS_ROOT = 'Membres'
+
 if system('git rev-parse --quiet --verify HEAD >/dev/null')
   against = 'HEAD'
 else
@@ -16,9 +18,18 @@ else
 end
 
 def is_valid_subscription?(content)
-  content.length != 0 &&
-    content.start_with?("---\n") &&
-    YAML.load(content)
+  return false if content.length == 0
+  return false unless content.start_with?("---\n")
+  begin
+    data = YAML.load(content)
+  rescue ArgumentError
+    # Parse error
+    return false
+  end
+  ['name', 'email'].each do |key|
+    return false unless data.include?(key)
+  end
+  true
 end
 
 def is_valid_subscription_file?(file)
@@ -27,13 +38,12 @@ def is_valid_subscription_file?(file)
   end
 end
 
-modified = []
 IO.popen(['git', 'diff-index', '--cached', '--name-status', against]) do |f|
   f.readlines.each do |line|
     status, file = line.strip.split("\t", 2)
     # Has file been added or modified?
     if ['A', 'M'].include?(status)
-      modified << file
+      next unless file.start_with?("#{SUBSCRIPTIONS_ROOT}/")
       if !is_valid_subscription_file?(file)
         $stderr.puts "Désolé : #{file} n'a pas le bon format !"
         exit 1