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)
}
openSUSE Build Service is sponsored by