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?
if boolean? key
repository.settings[key] = agree("#{describe(key, "enable #{key}")}? ") do |q|
default = setting.nil? ? value : setting
q.default = default ? "yes" : "no"
end
else
repository.settings[key] = ask("#{describe(key, "Value for #{key}")}: ", Integer) do |q|
default = setting.to_i if setting and setting.respond_to? :to_i
default ||= value
default ||= 0
q.default = default
end
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 format_value(value) << " " << descr
end
end
repository.settings.save if configure? or !setting.nil?
end