gitlabhq/lib/tasks/gitlab/info.rake
Riyad Preukschas 23a8e59938 Improve gitlab:env:info task
Renamed from gitlab:app:info
Add several extra info points
2012-12-06 21:16:48 +01:00

80 lines
3 KiB
Ruby

namespace :gitlab do
namespace :env do
desc "GITLAB | Show information about GitLab and its environment"
task :info => :environment do
# check which OS is running
if Kernel.system('lsb_release > /dev/null 2>&1')
os_name = `lsb_release -irs`
elsif File.exists?('/etc/system-release') && File.readable?('/etc/system-release')
os_name = File.read('/etc/system-release')
elsif File.exists?('/etc/debian_version') && File.readable?('/etc/debian_version')
debian_version = File.read('/etc/debian_version')
os_name = "Debian #{debian_version}"
end
os_name = os_name.gsub(/\n/, '')
# check if there is an RVM environment
m, rvm_version = `rvm --version`.match(/rvm ([\d\.]+) /).to_a
# check Bundler version
m, bunder_version = `bundle --version`.match(/Bundler version ([\d\.]+)/).to_a
# check Bundler version
m, rake_version = `rake --version`.match(/rake, version ([\d\.]+)/).to_a
puts ""
puts "System information".yellow
puts "System:\t\t#{os_name}"
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?
puts "Ruby Version:\t#{ENV['RUBY_VERSION']}"
puts "Gem Version:\t#{`gem --version`}"
puts "Bundler Version:#{bunder_version}"
puts "Rake Version:\t#{rake_version}"
# 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
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}"
puts "URL:\t\t#{Gitlab.config.url}"
puts "HTTP Clone URL:\t#{http_clone_url}"
puts "SSH Clone URL:\t#{ssh_clone_url}"
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:\t#{Gitlab.config.omniauth_providers}" if Gitlab.config.omniauth_enabled?
# check Gitolite version
gitolite_version_file = "#{Gitlab.config.git_base_path}/../gitolite/src/VERSION"
if File.exists?(gitolite_version_file) && File.readable?(gitolite_version_file)
gitolite_version = File.read(gitolite_version_file)
else
gitolite_version = 'unknown'
end
puts ""
puts "Gitolite information".yellow
puts "Version:\t#{gitolite_version}"
puts "Admin URI:\t#{Gitlab.config.gitolite_admin_uri}"
puts "Admin Key:\t#{Gitlab.config.gitolite_admin_key}"
puts "Repositories:\t#{Gitlab.config.git_base_path}"
puts "Hooks:\t\t#{Gitlab.config.git_hooks_path}"
puts "Git:\t\t#{Gitlab.config.git.path}"
end
end
end