summaryrefslogtreecommitdiff
path: root/lib/tasks/gitlab/features.rake
blob: 9cf568c07fe092dc732155dab6593e05c8292639 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
namespace :gitlab do
  namespace :features do
    desc 'GitLab | Features | Enable direct Git access via Rugged for NFS'
    task enable_rugged: :environment do
      set_rugged_feature_flags(true)
      puts 'All Rugged feature flags were enabled.'
    end

    task disable_rugged: :environment do
      set_rugged_feature_flags(false)
      puts 'All Rugged feature flags were disabled.'
    end

    task unset_rugged: :environment do
      set_rugged_feature_flags(nil)
      puts 'All Rugged feature flags were unset.'
    end
  end

  def set_rugged_feature_flags(status)
    Gitlab::Git::RuggedImpl::Repository::FEATURE_FLAGS.each do |flag|
      case status
      when nil
        Feature.get(flag).remove
      when true
        Feature.enable(flag)
      when false
        Feature.disable(flag)
      end
    end
  end
end