#!/usr/bin/ruby # -*- encoding: utf-8 -*- require 'erb' require 'rss' require '../../bin/rss_cdata.rb' require '../../bin/newsparser.rb' # Layout class class Layout extend ERB::DefMethod def_erb_method('layout', '../../template/layout-errata.html.erb') end # urlhead="http://vinelinux.org/" erratadir="./" tmpdir = '../../template/' header=File.open("../../template/header.tmpl") footer=File.open("../../template/footer.tmpl") curdir = File.basename(Dir.pwd) # Create rss object rss = RSS::Maker.make("1.0") do |maker| maker.channel.about = "http://vinelinux.org/errata/#{curdir}/rss" maker.channel.title = "エラッタ情報(#{curdir})" maker.channel.description = "Vine Linux #{curdir} のセキュリティ及びバグ更新情報です" maker.channel.link = "http://vinelinux.org/errata/#{curdir}/" maker.items.do_sort = true # create errata indexhtml contents errataindex = <Vine Linux #{curdir} のエラッタ情報
EOF # create all errata page Dir.open(erratadir) { |dir| for filename in dir.grep(/.dat$/).sort.reverse begin errata = NewsParser.new IO.read(erratadir+filename) titletext = errata.item['title'].gsub("\n","").gsub(/<[^>]+>/,"").strip $header_title = 'Vine Linux ' + curdir + ' Errata - ' + titletext # index content errataindex += <<-EOF EOF # rss rssitem = maker.items.new_item rssitem.link = urlhead+"errata/#{curdir}/#{filename.gsub(/.dat/,".html")}" rssitem.title = errata.item['title'] rssitem.date = Time.parse(errata.item['date'].gsub(/\,/,"/")) rssitem.dc_date = Time.parse(errata.item['date'].gsub(/\,/,"/")) rssitem.content_encoded = errata.item['info'] # errata page content erratahtml = <<-EOF

#{errata.item['title']}

発行日:#{errata.item['date']}
対象 (Vine Linuxバージョン):

#{errata.item['target']}

内容:
#{errata.item['info']}
修正済パッケージ/ファイル:
#{errata.item['update']}
入手先:
#{'update-watch, ' if curdir != "4x"}synaptic または apt-get でアップグレードすることができます。
# apt-get update
# apt-get upgrade
該当するパッケージをインストールしていない場合は、 更新の必要はありません。
また、各ミラーサイトの
#{errata.item['directory']}
からも個別に入手することができます。
関連URL:
    EOF if errata.item['url'] errata.item['url'].each_line do |line| erratahtml += "
  • #{line}
  • \n" end else erratahtml += "

    なし

    \n" end erratahtml += <<-EOF
EOF # write errata page template = ERB.new(erratahtml) newfile = open(filename.gsub(/.dat/,".html"), "w") newfile.puts Layout.new.layout { template.result } newfile.close rescue puts "\nE: #{filename}, skipped." end end } errataindex += < EOF # write errata indexhtml template = ERB.new(errataindex) $header_title = 'Vine Linux ' + curdir + ' Errata' errataindexhtml = open("index.html", "w") errataindexhtml.puts Layout.new.layout { template.result } errataindexhtml.close end # write errata rss File.open("errata#{curdir}.rdf", "w") do |file| file.puts rss.to_s end
日付 内容 対象
[#{errata.item['date']}] #{errata.item['title']} #{errata.item['target']}