diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-12-24 20:01:49 +0200 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-12-24 20:02:08 +0200 |
| commit | a87fccc0834aa816289669a0fc7744338e469745 (patch) | |
| tree | 51789fe5dc0095652c67f6880ffc75fe8f02288c /lib | |
| parent | dea86281714336799fb432833a0ca517b509abaa (diff) | |
| download | gitlab-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.rake | 33 |
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 |
