summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-24 20:01:49 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-24 20:02:08 +0200
commita87fccc0834aa816289669a0fc7744338e469745 (patch)
tree51789fe5dc0095652c67f6880ffc75fe8f02288c /lib
parentdea86281714336799fb432833a0ca517b509abaa (diff)
downloadgitlab-ce-a87fccc0834aa816289669a0fc7744338e469745.tar.gz
Update projects in gitolite after namespace moved. Added rake task to cleanup garbage from gitolite
Diffstat (limited to 'lib')
-rw-r--r--lib/tasks/gitlab/gitolite_rebuild.rake33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/tasks/gitlab/gitolite_rebuild.rake b/lib/tasks/gitlab/gitolite_rebuild.rake
index af2a2127ee2..8fa466fbfd7 100644
--- a/lib/tasks/gitlab/gitolite_rebuild.rake
+++ b/lib/tasks/gitlab/gitolite_rebuild.rake
@@ -23,5 +23,38 @@ namespace :gitlab do
puts "... #{"done".green}"
end
end
+
+ desc "GITLAB | Cleanup gitolite config"
+ task :cleanup => :environment do
+ warn_user_is_not_gitlab
+
+ real_repos = Project.all.map(&:path_with_namespace)
+ real_repos << "gitolite-admin"
+ real_repos << "@all"
+
+ remove_flag = ENV['REMOVE']
+
+ puts "Looking for repositories to remove... "
+ Gitlab::GitoliteConfig.new.apply do |config|
+ all_repos = []
+ garbage_repos = []
+
+ all_repos = config.conf.repos.keys
+ garbage_repos = all_repos - real_repos
+
+ garbage_repos.each do |repo_name|
+ if remove_flag
+ config.conf.rm_repo(repo_name)
+ print "to remove...".red
+ end
+
+ puts repo_name.red
+ end
+ end
+
+ unless remove_flag
+ puts "To cleanup repositories run this command with REMOVE=true".yellow
+ end
+ end
end
end