Erzeugung eines RSS-Feeds der zu aktualisierenden Ports
Angelegt von Andreas Steinel
Folgender Quellcode ermöglicht die Erzeugung eines RSS-Feeds (Atom-2) für die Ausgabe von pkg_version.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#!/usr/bin/env ruby xmlfile = "out.xml" server = "SERVER" server_fqdn = "lnxbil.dyndns.org" class FeedCreator def initialize(file) #{{{ @xmlfile = file @title = "" @itemtitle = "" @itemdesc = "" end #}}} def save(title,itemtitle,itemdesc) #{{{ @title = title @itemtitle = itemtitle @itemdesc = itemdesc create_xml end #}}} private def create_xml #{{{ a = File.open(@xmlfile,"w+") a.puts <<EOF <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <channel> <title>#{@title}</title> <language>en-us</language> <description>Status Reporter</description> <item> <title>#{@itemtitle}</title> <description>#{@itemdesc}</description> </item> </channel> </rss> EOF a.flush a.close end #}}} end a = FeedCreator.new(xmlfile) #db = IO.popen("pkg_version -l \\< -v").readlines db = File.open("/usr/ports/2update").readlines dbe = ["<table>"] db.each do |i| b = i.split("<") dbe << "<tr>" dbe << "<td>" + b[0].to_s + "</td>" dbe << "<td>" + b[1].to_s + "</td>" dbe << "</tr>" end dbe << "</table>" a.save("FreeBSD Package Status (SERVER)", db.size.to_s + " packages must be upgraded", dbe.join("\n").gsub("<","<").gsub(">",">")); |




