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 @@
  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   -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