Commit ba8d1345 authored by Olivier Halligon's avatar Olivier Halligon

Make `pod cache list` YAML-compatible

parent 2fdac707
...@@ -26,39 +26,41 @@ module Pod ...@@ -26,39 +26,41 @@ module Pod
end end
def run def run
UI.puts("Cache root: #{@cache.root}") if @short_output UI.puts("$CACHE_ROOT: #{@cache.root}") if @short_output
if @pod_name.nil? # Print all if @pod_name.nil? # Print all
@cache.cache_descriptors_per_pod.each do |pod, cache_desc| @cache.cache_descriptors_per_pod.each do |pod_name, cache_descriptors|
UI.title pod print_pod_cache_infos(pod_name, cache_descriptors)
print_pod_cache_infos(cache_desc)
end end
else # Print only for the requested pod else # Print only for the requested pod
cache_descriptors = @cache.cache_descriptors_per_pod[@pod_name] cache_descriptors = @cache.cache_descriptors_per_pod[@pod_name]
if cache_descriptors.nil? if cache_descriptors.nil?
UI.notice("No cache for pod named #{@pod_name} found") UI.notice("No cache for pod named #{@pod_name} found")
else else
print_pod_cache_infos(cache_descriptors) print_pod_cache_infos(@pod_name, cache_descriptors)
end end
end end
end end
private private
# Prints the list of specs & pod cache dirs for a single pod name # Prints the list of specs & pod cache dirs for a single pod name.
# #
# @param [Array<Hash>] info_list # This output is valid YAML so it can be parsed with 3rd party tools
#
# @param [Array<Hash>] cache_descriptors
# The various infos about a pod cache. Keys are # The various infos about a pod cache. Keys are
# :spec_file, :version, :release and :slug # :spec_file, :version, :release and :slug
# #
def print_pod_cache_infos(info_list) def print_pod_cache_infos(pod_name, cache_descriptors)
info_list.each do |info| UI.puts "#{pod_name}:"
UI.section("#{info[:version]} (#{pod_type(info)})") do cache_descriptors.each do |desc|
if @short_output if @short_output
[:spec_file, :slug].each { |k| info[k] = info[k].relative_path_from(@cache.root) } [:spec_file, :slug].each { |k| desc[k] = desc[k].relative_path_from(@cache.root) }
end
UI.labeled('Spec', info[:spec_file])
UI.labeled('Pod', info[:slug])
end end
UI.puts(" - Version: #{desc[:version]}")
UI.puts(" Type: #{pod_type(desc)}")
UI.puts(" Spec: #{desc[:spec_file]}")
UI.puts(" Pod: #{desc[:slug]}")
end end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment