gitlab-org--gitlab-foss/lib/system_check/gitlab_shell_check.rb

57 lines
1.6 KiB
Ruby

# frozen_string_literal: true
module SystemCheck
# Used by gitlab:gitlab_shell:check rake task
class GitlabShellCheck < BaseCheck
set_name 'GitLab Shell:'
def multi_check
check_gitlab_shell
check_gitlab_shell_self_test
end
private
def check_gitlab_shell
required_version = Gitlab::VersionInfo.parse(Gitlab::Shell.version_required)
current_version = Gitlab::VersionInfo.parse(gitlab_shell_version)
$stdout.print "GitLab Shell version >= #{required_version} ? ... "
if current_version.valid? && required_version <= current_version
$stdout.puts "OK (#{current_version})".color(:green)
else
$stdout.puts "FAIL. Please update gitlab-shell to #{required_version} from #{current_version}".color(:red)
end
end
def check_gitlab_shell_self_test
gitlab_shell_repo_base = gitlab_shell_path
check_cmd = File.expand_path('bin/check', gitlab_shell_repo_base)
$stdout.puts "Running #{check_cmd}"
if system(check_cmd, chdir: gitlab_shell_repo_base)
$stdout.puts 'gitlab-shell self-check successful'.color(:green)
else
$stdout.puts 'gitlab-shell self-check failed'.color(:red)
try_fixing_it(
'Make sure GitLab is running;',
'Check the gitlab-shell configuration file:',
sudo_gitlab("editor #{File.expand_path('config.yml', gitlab_shell_repo_base)}")
)
fix_and_rerun
end
end
# Helper methods
########################
def gitlab_shell_path
Gitlab.config.gitlab_shell.path
end
def gitlab_shell_version
Gitlab::Shell.version
end
end
end