File prepare_spec.rb of Package cairo-dock-plugins-extra
#!/usr/bin/ruby
require 'yaml'
class Plugin
attr :name, :license, :requires, :description
def to_spec()
[
"%package #{@name}",
"Summary: Cairo Dock #{@name} Plugin",
"License: #{@license}",
"Group: System/GUI/Other",
"Requires: %{name}-lang = %{version}",
@requires.map{ |req| "Requires: #{req}" },
"BuildArch: noarch",
"",
"%description #{@name}",
"#{@description}",
"",
"%files #{@name}",
"%defattr(-,root,root)",
"%dir %{destdir}",
"%{destdir}/#{@name}/"
].flatten.join("\n")
end
end
spec = IO.read('cairo-dock-plugins-extra.spec.in')
plugins = YAML.load_file('plugins.yaml')
spec.gsub!('%plugins_specs', plugins.map{ |plugin| plugin.to_spec }.join("\n\n"))
spec.gsub!('%plugins_names', plugins.map{ |plugin| plugin.name }.join(" "))
File.open('cairo-dock-plugins-extra.spec', 'w') { |file|
file.write(spec)
}