Commit 0236b3d17ead6a42e334e68b539fbc01cb348a6b

Authored by Riyad Preukschas
1 parent fa203e8b

Rename status rake task to check

lib/tasks/gitlab/check.rake 0 → 100644
@@ -0,0 +1,113 @@ @@ -0,0 +1,113 @@
  1 +namespace :gitlab do
  2 + namespace :app do
  3 + desc "GITLAB | Check GitLab installation status"
  4 + task :status => :environment do
  5 + puts "\nStarting diagnostics".yellow
  6 + git_base_path = Gitlab.config.git_base_path
  7 +
  8 + print "config/database.yml............"
  9 + if File.exists?(Rails.root.join "config", "database.yml")
  10 + puts "exists".green
  11 + else
  12 + puts "missing".red
  13 + return
  14 + end
  15 +
  16 + print "config/gitlab.yml............"
  17 + if File.exists?(Rails.root.join "config", "gitlab.yml")
  18 + puts "exists".green
  19 + else
  20 + puts "missing".red
  21 + return
  22 + end
  23 +
  24 + print "#{git_base_path}............"
  25 + if File.exists?(git_base_path)
  26 + puts "exists".green
  27 + else
  28 + puts "missing".red
  29 + return
  30 + end
  31 +
  32 + print "#{git_base_path} is writable?............"
  33 + if File.stat(git_base_path).writable?
  34 + puts "YES".green
  35 + else
  36 + puts "NO".red
  37 + return
  38 + end
  39 +
  40 + FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
  41 + begin
  42 + `git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`
  43 + raise unless $?.success?
  44 + print "Can clone gitolite-admin?............"
  45 + puts "YES".green
  46 + rescue
  47 + print "Can clone gitolite-admin?............"
  48 + puts "NO".red
  49 + return
  50 + end
  51 +
  52 + begin
  53 + Dir.chdir("/tmp/gitolite_gitlab_test") do
  54 + `touch blah && git add blah && git commit -qm blah -- blah`
  55 + raise unless $?.success?
  56 + end
  57 + print "Can git commit?............"
  58 + puts "YES".green
  59 + rescue
  60 + print "Can git commit?............"
  61 + puts "NO".red
  62 + return
  63 + ensure
  64 + FileUtils.rm_rf("/tmp/gitolite_gitlab_test")
  65 + end
  66 +
  67 + print "UMASK for .gitolite.rc is 0007? ............"
  68 + if open(File.absolute_path("#{git_base_path}/../.gitolite.rc")).grep(/UMASK([ \t]*)=([ \t>]*)0007/).any?
  69 + puts "YES".green
  70 + else
  71 + puts "NO".red
  72 + return
  73 + end
  74 +
  75 + gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common")
  76 + gitlab_hook_files = ['post-receive']
  77 + gitlab_hook_files.each do |file_name|
  78 + dest = File.join(gitolite_hooks_path, file_name)
  79 + print "#{dest} exists? ............"
  80 + if File.exists?(dest)
  81 + puts "YES".green
  82 + else
  83 + puts "NO".red
  84 + return
  85 + end
  86 + end
  87 +
  88 + if Project.count > 0
  89 + puts "\nValidating projects repositories:".yellow
  90 + Project.find_each(:batch_size => 100) do |project|
  91 + print "* #{project.name}....."
  92 + hook_file = File.join(project.path_to_repo, 'hooks', 'post-receive')
  93 +
  94 + unless File.exists?(hook_file)
  95 + puts "post-receive file missing".red
  96 + next
  97 + end
  98 +
  99 + original_content = File.read(Rails.root.join('lib', 'hooks', 'post-receive'))
  100 + new_content = File.read(hook_file)
  101 +
  102 + if original_content == new_content
  103 + puts "post-receive file ok".green
  104 + else
  105 + puts "post-receive file content does not match".red
  106 + end
  107 + end
  108 + end
  109 +
  110 + puts "\nFinished".blue
  111 + end
  112 + end
  113 +end
lib/tasks/gitlab/status.rake
@@ -1,113 +0,0 @@ @@ -1,113 +0,0 @@
1 -namespace :gitlab do  
2 - namespace :app do  
3 - desc "GITLAB | Check GitLab installation status"  
4 - task :status => :environment do  
5 - puts "\nStarting diagnostics".yellow  
6 - git_base_path = Gitlab.config.git_base_path  
7 -  
8 - print "config/database.yml............"  
9 - if File.exists?(Rails.root.join "config", "database.yml")  
10 - puts "exists".green  
11 - else  
12 - puts "missing".red  
13 - return  
14 - end  
15 -  
16 - print "config/gitlab.yml............"  
17 - if File.exists?(Rails.root.join "config", "gitlab.yml")  
18 - puts "exists".green  
19 - else  
20 - puts "missing".red  
21 - return  
22 - end  
23 -  
24 - print "#{git_base_path}............"  
25 - if File.exists?(git_base_path)  
26 - puts "exists".green  
27 - else  
28 - puts "missing".red  
29 - return  
30 - end  
31 -  
32 - print "#{git_base_path} is writable?............"  
33 - if File.stat(git_base_path).writable?  
34 - puts "YES".green  
35 - else  
36 - puts "NO".red  
37 - return  
38 - end  
39 -  
40 - FileUtils.rm_rf("/tmp/gitolite_gitlab_test")  
41 - begin  
42 - `git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite_gitlab_test`  
43 - raise unless $?.success?  
44 - print "Can clone gitolite-admin?............"  
45 - puts "YES".green  
46 - rescue  
47 - print "Can clone gitolite-admin?............"  
48 - puts "NO".red  
49 - return  
50 - end  
51 -  
52 - begin  
53 - Dir.chdir("/tmp/gitolite_gitlab_test") do  
54 - `touch blah && git add blah && git commit -qm blah -- blah`  
55 - raise unless $?.success?  
56 - end  
57 - print "Can git commit?............"  
58 - puts "YES".green  
59 - rescue  
60 - print "Can git commit?............"  
61 - puts "NO".red  
62 - return  
63 - ensure  
64 - FileUtils.rm_rf("/tmp/gitolite_gitlab_test")  
65 - end  
66 -  
67 - print "UMASK for .gitolite.rc is 0007? ............"  
68 - if open(File.absolute_path("#{git_base_path}/../.gitolite.rc")).grep(/UMASK([ \t]*)=([ \t>]*)0007/).any?  
69 - puts "YES".green  
70 - else  
71 - puts "NO".red  
72 - return  
73 - end  
74 -  
75 - gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common")  
76 - gitlab_hook_files = ['post-receive']  
77 - gitlab_hook_files.each do |file_name|  
78 - dest = File.join(gitolite_hooks_path, file_name)  
79 - print "#{dest} exists? ............"  
80 - if File.exists?(dest)  
81 - puts "YES".green  
82 - else  
83 - puts "NO".red  
84 - return  
85 - end  
86 - end  
87 -  
88 - if Project.count > 0  
89 - puts "\nValidating projects repositories:".yellow  
90 - Project.find_each(:batch_size => 100) do |project|  
91 - print "* #{project.name}....."  
92 - hook_file = File.join(project.path_to_repo, 'hooks', 'post-receive')  
93 -  
94 - unless File.exists?(hook_file)  
95 - puts "post-receive file missing".red  
96 - next  
97 - end  
98 -  
99 - original_content = File.read(Rails.root.join('lib', 'hooks', 'post-receive'))  
100 - new_content = File.read(hook_file)  
101 -  
102 - if original_content == new_content  
103 - puts "post-receive file ok".green  
104 - else  
105 - puts "post-receive file content does not match".red  
106 - end  
107 - end  
108 - end  
109 -  
110 - puts "\nFinished".blue  
111 - end  
112 - end  
113 -end