diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index 25713482ed8..c02fbad0214 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -1,9 +1,25 @@ namespace :gitlab do namespace :shell do desc "GITLAB | Setup gitlab-shell" - task :setup => :environment do + task setup: :environment do setup end + + desc "GITLAB | Build missing projects" + task build_missing_projects: :environment do + Project.find_each(batch_size: 1000) do |project| + path_to_repo = File.join(Gitlab.config.gitolite.repos_path, "#{project.path_with_namespace}.git") + if File.exists?(path_to_repo) + print '-' + else + if Gitlab::Shell.new.add_repository(project.path_with_namespace) + print '.' + else + print 'F' + end + end + end + end end def setup @@ -16,7 +32,7 @@ namespace :gitlab do system("echo '# Managed by gitlab-shell' > /home/git/.ssh/authorized_keys") - Key.find_each(:batch_size => 1000) do |key| + Key.find_each(batch_size: 1000) do |key| if Gitlab::Shell.new.add_key(key.shell_id, key.key) print '.' else