From fcfec54ac07c989195fa9036cee2d5c48eec8337 Mon Sep 17 00:00:00 2001 From: Lunar Date: Fri, 31 May 2013 23:07:16 +0200 Subject: [PATCH] Last step in pre-commit hook implementation --- bin/pre-commit-hook | 3 +++ features/pre-commit-hook.feature | 5 +++++ features/step_definitions/subscriptions.rb | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/bin/pre-commit-hook b/bin/pre-commit-hook index fcfb3e9..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 @@ -43,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 diff --git a/features/pre-commit-hook.feature b/features/pre-commit-hook.feature index e6066d2..7ac6901 100644 --- a/features/pre-commit-hook.feature +++ b/features/pre-commit-hook.feature @@ -15,6 +15,11 @@ Fonctionnalité: pre-commit hook Git Et que je fais un `commit` du nouveau fichier Alors je ne dois pas avoir eu d'erreur + Scénario: Autres fichiers + Lorsque j'ajoute un fichier hors de la base des adhérents + Et que je fais un `commit` du nouveau fichier + Alors je ne dois pas avoir eu d'erreur + Scénario: Commit d'un fichier vide Lorsque j'ajoute une fiche vide Et que je fais un `commit` du nouveau fichier diff --git a/features/step_definitions/subscriptions.rb b/features/step_definitions/subscriptions.rb index f5dab63..7b70bd0 100644 --- a/features/step_definitions/subscriptions.rb +++ b/features/step_definitions/subscriptions.rb @@ -54,3 +54,8 @@ When /^je supprime le nom sur une fiche existante$/ do @file = subscription_filename_for_id(1) run_simple "sed -e '/^name:/d' -i #{@file}" end + +When /^j'ajoute un fichier hors de la base des adhérents$/ do + @file = 'test' + write_file @file, 'Test content.' +end -- 2.39.2