Sha256: 74ba02bfbcad10380f5028805a53e2e0da7e42d1e205d4d54a0e983095c900d1

Contents?: true

Size: 1.95 KB

Versions: 79

Compression:

Stored size: 1.95 KB

Contents

require 'travis/cli'

module Travis
  module CLI
    class Settings < RepoCommand
      attr_accessor :setting

      description "access repository settings"
      on('--keys', 'always use setting key instead of description')
      on('-t', '--enable',  'enable the setting(s)')  { |c| c.setting = true  }
      on('-f', '--disable', 'disable the setting(s)') { |c| c.setting = false }
      on('-c', '--configure', 'change settings interactively')

      DESCRIPTIONS = {
        :builds_only_with_travis_yml => "Only run builds with a .travis.yml",
        :build_pushes                => "Build pushes",
        :build_pull_requests         => "Build pull requests"
      }

      def run(*keys)
        exit 1 if interactive? and keys.empty? and !setting.nil? and !all_settings? and !configure?
        authenticate
        say repository.slug, "Settings for %s:"
        repository.settings.to_h.each do |key, value|
          next unless keys.empty? or keys.include? key
          if configure?
            repository.settings[key] = agree("#{describe(key, "enable #{key}")}? ") do |q|
              default   = setting.nil? ? value : setting
              q.default = default ? "yes" : "no"
            end
          else
            value = repository.settings[key] = setting unless setting.nil?
            descr = color(describe(key, color(key, :info)) { |s| key.ljust(30) + " " + color(s, [:reset, :bold]) }, :info)
            say color("[#{value ? "+" : "-"}] ", [:bold, value ? :green : :red]) << descr
          end
        end
        repository.settings.save if configure? or !setting.nil?
      end

      def all_settings?
        agree("Really #{setting ? "enable" : "disable"} all settings? ") do |q|
          q.default = "no"
        end
      end

      def describe(key, description = key)
        return description if keys?
        desc = DESCRIPTIONS[key.to_sym]
        desc &&= yield(desc) if block_given?
        desc || description
      end
    end
  end
end

Version data entries

79 entries across 79 versions & 1 rubygems

Version Path
travis-1.6.11.travis.502.6 lib/travis/cli/settings.rb
travis-1.6.9 lib/travis/cli/settings.rb
travis-1.6.9.travis.484.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.483.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.479.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.463.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.462.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.461.6 lib/travis/cli/settings.rb
travis-1.6.9.travis.458.6 lib/travis/cli/settings.rb
travis-1.6.8 lib/travis/cli/settings.rb
travis-1.6.8.travis.457.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.456.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.455.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.454.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.453.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.452.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.451.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.450.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.449.6 lib/travis/cli/settings.rb
travis-1.6.8.travis.447.6 lib/travis/cli/settings.rb