info.rake 2.77 KB
Newer Older
1
namespace :gitlab do
2 3
  namespace :env do
    desc "GITLAB | Show information about GitLab and its environment"
4
    task info: :environment  do
5

6
      # check if there is an RVM environment
7
      rvm_version = run_and_match("rvm --version", /[\d\.]+/).try(:to_s)
8 9
      # check Ruby version
      ruby_version = run_and_match("ruby --version", /[\d\.p]+/).try(:to_s)
10 11
      # check Gem version
      gem_version = run("gem --version")
12
      # check Bundler version
13
      bunder_version = run_and_match("bundle --version", /[\d\.]+/).try(:to_s)
14
      # check Bundler version
15
      rake_version = run_and_match("rake --version", /[\d\.]+/).try(:to_s)
16 17 18

      puts ""
      puts "System information".yellow
19
      puts "System:\t\t#{os_name || "unknown".red}"
20 21 22
      puts "Current User:\t#{`whoami`}"
      puts "Using RVM:\t#{rvm_version.present? ? "yes".green : "no"}"
      puts "RVM Version:\t#{rvm_version}" if rvm_version.present?
23
      puts "Ruby Version:\t#{ruby_version || "unknown".red}"
24 25 26
      puts "Gem Version:\t#{gem_version || "unknown".red}"
      puts "Bundler Version:#{bunder_version || "unknown".red}"
      puts "Rake Version:\t#{rake_version || "unknown".red}"
27 28 29 30 31 32 33 34 35 36 37


      # check database adapter
      database_adapter = ActiveRecord::Base.connection.adapter_name.downcase

      project = Project.new(path: "some-project")
      project.path = "some-project"
      # construct clone URLs
      http_clone_url = project.http_url_to_repo
      ssh_clone_url  = project.ssh_url_to_repo

38
      omniauth_providers = Gitlab.config.omniauth.providers
39 40
      omniauth_providers.map! { |provider| provider['name'] }

41 42 43 44 45 46
      puts ""
      puts "GitLab information".yellow
      puts "Version:\t#{Gitlab::Version}"
      puts "Revision:\t#{Gitlab::Revision}"
      puts "Directory:\t#{Rails.root}"
      puts "DB Adapter:\t#{database_adapter}"
47
      puts "URL:\t\t#{Gitlab.config.gitlab.url}"
48 49
      puts "HTTP Clone URL:\t#{http_clone_url}"
      puts "SSH Clone URL:\t#{ssh_clone_url}"
50 51 52
      puts "Using LDAP:\t#{Gitlab.config.ldap.enabled ? "yes".green : "no"}"
      puts "Using Omniauth:\t#{Gitlab.config.omniauth.enabled ? "yes".green : "no"}"
      puts "Omniauth Providers: #{omniauth_providers.map(&:magenta).join(', ')}" if Gitlab.config.omniauth.enabled
53 54 55 56



      # check Gitolite version
57 58 59
      gitlab_shell_version_file = "#{Gitlab.config.gitlab_shell.repos_path}/../gitlab-shell/VERSION"
      if File.readable?(gitlab_shell_version_file)
        gitlab_shell_version = File.read(gitlab_shell_version_file)
60 61 62
      end

      puts ""
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
63
      puts "GitLab Shell".yellow
64 65 66
      puts "Version:\t#{gitlab_shell_version || "unknown".red}"
      puts "Repositories:\t#{Gitlab.config.gitlab_shell.repos_path}"
      puts "Hooks:\t\t#{Gitlab.config.gitlab_shell.hooks_path}"
67
      puts "Git:\t\t#{Gitlab.config.git.bin_path}"
68 69 70 71

    end
  end
end