require_relative '../env_config/environment'
namespace :env do
desc 'Lists the environment variables set across servers' task :list do environment = Capistrano::EnvConfig::Environment.new environment.list.sort.each do |key, value| puts key + '=' + value end end desc 'Synchronizes the environment variables across servers' task :sync do environment = Capistrano::EnvConfig::Environment.new environment.sync end desc 'Sets an environment variable' task :set do |task, args| abort 'No key-value pair specified.' if args.extras.empty? environment = Capistrano::EnvConfig::Environment.new args.extras.each do |variable| key, value = variable.split( '=', 2 ) environment.set( key, value ) end environment.sync end desc 'Prints an environment variable' task :get do |task, args| environment = Capistrano::EnvConfig::Environment.new args.extras.each do |variable| value = environment.get( variable ) if value.nil? STDERR.puts "No such variable: #{variable.upcase}" else puts "#{variable.upcase}=#{value}" end end end desc 'Removes a environment variable' task :unset do |task, args| environment = Capistrano::EnvConfig::Environment.new args.extras.each do |variable| if environment.get( variable.upcase ).nil? abort "No such variable: #{variable.upcase}" else environment.delete( variable.upcase ) end end environment.sync end
end