#! /usr/bin/ruby
# usage: rip-info package
#
# Prints information about a package installed in the current ripenv.

require 'rip/script'

package = ARGV[0]

# Print only a single key, e.g.
#   >> rip info repl version
#   => 0.1.0
if key = ARGV[1]
  # Awesome, right?
  require 'yaml'
  value = YAML.load(`rip-info #{ARGV[0]}`)[key]

  if value.is_a?(Array)
    value.each { |v| puts "- #{v}"}
  else
    puts value
  end

  exit
end

installed = rip(:installed).detect do |dir|
  dir =~ /\/#{package}-\w{32}/
end

exit 1 if installed.nil?

installed = installed.chomp
source, version = rip(:metadata, installed).split(' ')

puts "source: #{source}"
puts "version: #{version}"
puts "path: #{installed}"

bins = Dir["#{installed}/bin/*"]
if bins.any?
  puts "bins:"
  bins.each { |bin| puts "- #{basename bin}" }
end

mans = Dir["#{installed}/man/**/*"].select { |file| file =~ /\.\d$/ }
if mans.any?
  puts "manuals:"
  mans.each { |man| puts "- #{basename man}" }
end

if deps = File.read("#{installed}/deps.rip") rescue nil
  puts "needs:"
  deps.each { |dep| puts "- #{dep}" }
end
