require 'fileutils'

Given /^un clone du Git contenant les adhésions$/ do
  # Create main repository
  create_dir 'main'
  cd 'main'
  @main_repository_path = current_dir
  run_simple 'git init --bare'
  cd '..'

  # Clone it now
  run_simple 'git clone main clone'
  cd 'clone'
  create_dir 'Membres'
  BASE_SUBSCRIPTIONS.each_pair do |number, data|
    file = subscription_filename_for_id(number)
    write_file file, render_subscription_file(data)
    run_simple "git add #{file}"
  end
  run_simple 'git commit -m "Initial data set from fixtures"'
  run_simple 'git push origin master'
end

Given /^le « pre-commit hook » correctement configuré$/ do
  FileUtils.ln_s File.expand_path('../../../bin/pre-commit-hook', __FILE__),
                 "#{current_dir}/.git/hooks/pre-commit"
end

Given /^le « pre-receive hook » configuré sur le dépôt principal$/ do
  FileUtils.ln_s File.expand_path('../../../bin/pre-receive-hook', __FILE__),
                 "#{@main_repository_path}/hooks/pre-receive"
end

When /je fais un `commit` du nouveau fichier$/ do
  run_simple "git add #{@file}"
  run_simple "git commit #{@file} -m 'new file'", false # do not fail on error
end

When /^que je pousse la modification$/ do
  run_simple "git add #{@file}"
  run_simple "git commit #{@file} -m 'new file'"
  run_simple 'git push origin master', false # do not fail on error
end
