X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/blobdiff_plain/e4000b47cf37576b44d21dc088601d619a6e5261..a0f26c1c4164e5adae235b1ace65d9d2baaf9df9:/bin/pre-commit-hook?ds=inline diff --git a/bin/pre-commit-hook b/bin/pre-commit-hook index 7d3d0e8..317e5c5 100755 --- a/bin/pre-commit-hook +++ b/bin/pre-commit-hook @@ -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 @@ -19,12 +21,15 @@ def is_valid_subscription?(content) return false if content.length == 0 return false unless content.start_with?("---\n") begin - YAML.load(content) - true + data = YAML.load(content) rescue ArgumentError # Parse error - false + return false + end + ['name', 'email'].each do |key| + return false unless data.include?(key) end + true end def is_valid_subscription_file?(file) @@ -40,6 +45,7 @@ IO.popen(['git', 'diff-index', '--cached', '--name-status', against]) do |f| # 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