mirror of https://github.com/vbatts/sl-feeds.git
69 lines
1.9 KiB
Ruby
Executable File
69 lines
1.9 KiB
Ruby
Executable File
#!/home/vbatts/opt/bin/ruby
|
|
|
|
require 'logger'
|
|
|
|
$log = Logger.new(STDERR)
|
|
$log.level = Logger::DEBUG
|
|
|
|
# put this in a loader function, because the
|
|
# rss library is SOO SLOW to load. we don't want to load it,
|
|
# if the script is going to fail early.
|
|
def load_libs()
|
|
require 'rubygems'
|
|
require 'slackware'
|
|
require 'slackware/changelog/rss'
|
|
require 'rb-inotify'
|
|
end
|
|
|
|
|
|
BASE_URL = "http://slackware.osuosl.org/"
|
|
FEEDS_BASE_DIR = "/home/vbatts/public_html/feeds/"
|
|
RE_REPO_NAME = Regexp.new(/slackware(\d{2})?-(\d+\.\d+|current)\/(patches)?\/?.*/)
|
|
|
|
def gen_file(file)
|
|
m = RE_REPO_NAME.match file
|
|
if m[3].nil?
|
|
file_name = "%sslackware%s-%s_ChangeLog.rss" % [FEEDS_BASE_DIR, m[1], m[2]]
|
|
else
|
|
file_name = "%sslackware%s-%s_%s_ChangeLog.rss" % [FEEDS_BASE_DIR, m[1], m[2], m[3]]
|
|
end
|
|
|
|
if File.exist?(file_name)
|
|
if File.mtime(file) < File.mtime(file_name)
|
|
printf("%f: INFO: %s is newer than %s\n", Time.now, file, file_name)
|
|
end
|
|
end
|
|
|
|
changelog = Slackware::ChangeLog.new(file) #, :version => m[2])
|
|
opts = Hash.new
|
|
opts[:arch] = m[1] unless m[1].nil?
|
|
if m[3].nil?
|
|
opts[:url] = "%sslackware%s-%s/ChangeLog.txt" % [BASE_URL, m[1], m[2]]
|
|
feed = File.open( "%sslackware%s-%s_ChangeLog.rss" % [FEEDS_BASE_DIR, m[1], m[2]], "w+")
|
|
else
|
|
opts[:url] = "%sslackware%s-%s/%s/ChangeLog.txt" % [BASE_URL, m[1], m[2], m[3]]
|
|
feed = File.open( "%sslackware%s-%s_%s_ChangeLog.rss" % [FEEDS_BASE_DIR, m[1], m[2], m[3]], "w+")
|
|
end
|
|
changelog.parse
|
|
printf("%f: INFO: generating feed: %s\n", Time.now.to_f, feed.path)
|
|
feed << changelog.to_rss(opts)
|
|
feed.close
|
|
changelog = nil
|
|
end
|
|
|
|
if ARGV.count == 0
|
|
$log.error("#{Time.now}: ERROR: ChangeLog.txt files must be passed\n")
|
|
exit(2)
|
|
else
|
|
load_libs()
|
|
for file in ARGV
|
|
if File.exist?(file)
|
|
gen_file(file)
|
|
else
|
|
$log.warn("#{Time.now}: WARN: #{file} does not exist\n")
|
|
end
|
|
end
|
|
end
|
|
|
|
# vim: set sts=2 sw=2 et ai:
|