diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-05-28 19:01:19 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-05-28 19:01:19 +0300 |
commit | 6ba4cb1d2b0bcfaf8459c8936513637acc92da5e (patch) | |
tree | 8df8a4a1b8080e917852710d8437e1a9d0c8629c /lib | |
parent | 260c877cab3f4c1d05ab3d984a2fad5a1e018e5e (diff) | |
download | gitlab-ce-6ba4cb1d2b0bcfaf8459c8936513637acc92da5e.tar.gz |
Remove old rake task
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/tasks/gitlab/enable_namespaces.rake | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/lib/tasks/gitlab/enable_namespaces.rake b/lib/tasks/gitlab/enable_namespaces.rake deleted file mode 100644 index 201f34ab546..00000000000 --- a/lib/tasks/gitlab/enable_namespaces.rake +++ /dev/null @@ -1,111 +0,0 @@ -namespace :gitlab do - desc "GITLAB | Enable usernames and namespaces for user projects" - task enable_namespaces: :environment do - warn_user_is_not_gitlab - - migrate_user_namespaces - migrate_groups - migrate_projects - end - - def migrate_user_namespaces - puts "\nGenerate usernames for users without one: ".blue - User.find_each(batch_size: 500) do |user| - if user.namespace - print '-'.cyan - next - end - - username = if user.username.present? - # if user already has username filled - user.username - else - build_username(user) - end - - begin - User.transaction do - user.update_attributes!(username: username) - print '.'.green - end - rescue - print 'F'.red - end - end - puts "\nDone" - end - - def build_username(user) - username = nil - - # generate username - username = user.email.match(/^[^@]*/)[0] - username.gsub!("+", ".") - - # return username if no matches - return username unless User.find_by(username: username) - - # look for same username - (1..10).each do |i| - suffixed_username = "#{username}#{i}" - - return suffixed_username unless User.find_by(username: suffixed_username) - end - end - - def migrate_groups - puts "\nCreate directories for groups: ".blue - - Group.find_each(batch_size: 500) do |group| - begin - if group.dir_exists? - print '-'.cyan - else - if group.ensure_dir_exist - print '.'.green - else - print 'F'.red - end - end - rescue - print 'F'.red - end - end - puts "\nDone" - end - - def migrate_projects - git_path = Gitlab.config.gitlab_shell.repos_path - puts "\nMove projects in groups into respective directories ... ".blue - Project.where('namespace_id IS NOT NULL').find_each(batch_size: 500) do |project| - next unless project.group - - group = project.group - - print "#{project.name_with_namespace.yellow} ... " - - new_path = File.join(git_path, project.path_with_namespace + '.git') - - if File.exists?(new_path) - puts "already at #{new_path}".green - next - end - - old_path = File.join(git_path, project.path + '.git') - - unless File.exists?(old_path) - puts "couldn't find it at #{old_path}".red - next - end - - begin - project.transfer(group.path) - puts "moved to #{new_path}".green - rescue - puts "failed moving to #{new_path}".red - end - end - - puts "\nDone" - end -end |