class Travis::CLI::Env
def clear
def clear exit if env_vars.empty? exit 1 if interactive? and not force? and not danger_zone? "Clear out all env variables for #{color(repository.slug, :bold)}?" remove_vars end
def copy(*names)
def copy(*names) names.each do |name| if ENV.include? name set(name, ENV[name]) else warn "missing in current environment: #{color "$#{name}", :bold}" end end end
def env_vars
def env_vars repository.env_vars end
def list
def list say color("# environment variables for #{color repository.slug, :bold}", :info) env_vars.each { |v| say "#{v.name}=" << color(v.value || "[secure]", :bold) } end
def remove_vars
def remove_vars env_vars.each do |var| next if block_given? and not yield(var) say color('[x] ', [:red, :bold]) + "removing environment variable #{color "$#{var.name}", :info}" var.delete end end
def set(name, value)
def set(name, value) options ||= { :public => public } if public != nil say color('[+] ', [:green, :bold]) + "setting environment variable #{color "$#{name}", :info}" value = Shellwords.escape(value) unless unescape? env_vars.upsert(name, value, options || {}) end
def setup
def setup super authenticate error "not allowed to access environment variables for #{color(repository.slug, :bold)}" unless repository.admin? end
def unset(*names)
def unset(*names) remove_vars { |var| names.include? var.name } end