From 7044d649a39c51bf0543baec33c3f7497e038171 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Wed, 3 Jun 2015 15:42:22 +0200 Subject: Add autocrlf back to installation docs, add a check for it. --- doc/install/installation.md | 3 +++ lib/tasks/gitlab/check.rake | 31 +++++++++++++++++++++++++++++++ lib/tasks/gitlab/task_helpers.rake | 4 ++-- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/doc/install/installation.md b/doc/install/installation.md index be0dd37a48b..badea4de214 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -241,6 +241,9 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da # Copy the example Rack attack config sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb + # Configure Git global settings for git user, used when editing via web editor + sudo -u git -H git config --global core.autocrlf input + # Configure Redis connection settings sudo -u git -H cp config/resque.yml.example config/resque.yml diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 3f4f6737913..75bd41f2838 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -13,6 +13,7 @@ namespace :gitlab do warn_user_is_not_gitlab start_checking "GitLab" + check_git_config check_database_config_exists check_database_is_not_sqlite check_migrations_are_up @@ -37,6 +38,36 @@ namespace :gitlab do # Checks ######################## + def check_git_config + print "Git configured with autocrlf=input? ... " + + options = { + "core.autocrlf" => "input" + } + + correct_options = options.map do |name, value| + run(%W(#{Gitlab.config.git.bin_path} config --global --get #{name})).try(:squish) == value + end + + if correct_options.all? + puts "yes".green + else + print "Trying to fix Git error automatically. ..." + + if auto_fix_git_config(options) + puts "Success".green + else + puts "Failed".red + try_fixing_it( + sudo_gitlab("\"#{Gitlab.config.git.bin_path}\" config --global core.autocrlf \"#{options["core.autocrlf"]}\"") + ) + for_more_information( + see_installation_guide_section "GitLab" + ) + end + end + end + def check_database_config_exists print "Database config exists? ... " diff --git a/lib/tasks/gitlab/task_helpers.rake b/lib/tasks/gitlab/task_helpers.rake index 14a130be2ca..c95b6540ebc 100644 --- a/lib/tasks/gitlab/task_helpers.rake +++ b/lib/tasks/gitlab/task_helpers.rake @@ -118,9 +118,9 @@ namespace :gitlab do # Returns true if all subcommands were successfull (according to their exit code) # Returns false if any or all subcommands failed. def auto_fix_git_config(options) - if !@warned_user_not_gitlab && options['user.email'] != 'example@example.com' # default email should be overridden? + if !@warned_user_not_gitlab command_success = options.map do |name, value| - system(%W(#{Gitlab.config.git.bin_path} config --global #{name} #{value})) + system(*%W(#{Gitlab.config.git.bin_path} config --global #{name} #{value})) end command_success.all? -- cgit v1.2.1