class VPS::CLI::Service
Constants
- SERVICES
Public Instance Methods
add(host, service = nil)
click to toggle source
# File lib/vps/cli/service.rb, line 8 def add(host, service = nil) config = VPS.read_config(host) unless service list = services.keys.sort - config[:services].keys service = list[Ask.list("Which service to you want to add?", list)] end if !config[:services].include?(service) && (yml = services[service]) list = tags(yml[:image] || "library/#{service}") tag = list[Ask.list("Choose which tag to use", list)] image = "#{yml[:image] || service}:#{tag}" yml, volumes = finalize_config(yml) config[:services][service] = {:image => image}.merge(yml) config[:volumes].concat(volumes).uniq! VPS.write_config(host, config) end end
list(host)
click to toggle source
# File lib/vps/cli/service.rb, line 44 def list(host) config = VPS.read_config(host) services = config[:services].collect do |service, yml| "* #{yml[:image]}" end.sort puts services end
remove(host, service = nil)
click to toggle source
# File lib/vps/cli/service.rb, line 30 def remove(host, service = nil) config = VPS.read_config(host) unless service list = config[:services].keys.sort service = list[Ask.list("Which service do you want to remove?", list)] end if config[:services].delete(service) VPS.write_config(host, config) end end
Private Instance Methods
finalize_config(config)
click to toggle source
# File lib/vps/cli/service.rb, line 80 def finalize_config(config) config.delete(:image) if config[:environment] config[:environment] = config[:environment].inject({}) do |env, variable| env[variable] = Ask.input(variable) env end end volumes = (config[:volumes] || []).collect do |volume| volume.split(":")[0] end [config, volumes] end
services()
click to toggle source
# File lib/vps/cli/service.rb, line 56 def services @services ||= with_indifferent_access(YAML.load_file(SERVICES)) end
with_indifferent_access(object)
click to toggle source
# File lib/vps/cli/service.rb, line 66 def with_indifferent_access(object) case object when Hash object.inject({}.with_indifferent_access) do |hash, (key, value)| hash[key] = with_indifferent_access(value) hash end when Array object.collect{|item| with_indifferent_access(item)} else object end end