def get_metadata
setup_py = @paths.first
if File.directory?(setup_py)
setup_py = File.join(setup_py, "setup.py")
@paths = [setup_py]
end
if !File.exists?(setup_py)
raise "Unable to find python package; tried #{setup_py}"
end
pylib = File.expand_path(File.dirname(__FILE__))
setup_cmd = "env PYTHONPATH=#{pylib} #{self[:settings][:python]} #{setup_py} --command-packages=pyfpm get_metadata"
output = ::Dir.chdir(File.dirname(setup_py)) { `#{setup_cmd}` }
puts output
metadata = JSON.parse(output[/\{.*\}/msx])
if self[:settings][:package_prefix]
self[:package_prefix] = self[:settings][:package_prefix]
else
self[:package_prefix] = "python"
end
self[:architecture] = metadata["architecture"]
self[:description] = metadata["description"]
self[:license] = metadata["license"]
self[:version] = metadata["version"]
self[:name] = "#{self[:package_prefix]}#{self[:suffix]}-#{metadata["name"]}"
self[:url] = metadata["url"]
self[:dependencies] = metadata["dependencies"].collect do |dep|
name, cmp, version = dep.split
"#{self[:package_prefix]}#{self[:suffix]}-#{name} #{cmp} #{version}"
end
end