require 'date' module Gentoo class DownloadGenerator < Jekyll::Generator DIR = '_data/downloads/' def generate(site) site.data['downloads'] ||= {} Dir.glob(DIR + '*') do |raw_arch| arch = File.basename(raw_arch) site.data['downloads'][arch] = {} File.readlines(raw_arch + '/iso.txt').each do |line| #puts line next if line.start_with? '#' if line =~ /^(\d{8})\/(\S+) (\d+)$/ date = Date.parse("%s-%s-%s" % [$1[0..3], $1[4..5], $1[6..7]]) site.data['downloads'][arch]['iso'] ||= {} site.data['downloads'][arch]['iso']['minimal'] = { 'date' => date, 'filename' => "%s/%s" % [$1, $2], 'size' => $3 } end end File.readlines(raw_arch + '/stage3.txt').each do |line| # puts line next if line.start_with? '#' if line =~ /^(\d{8})\/(\w+\/)?stage3-(.*)-\d{8}.tar.bz2 (\d+)$/ date = Date.parse("%s-%s-%s" % [$1[0..3], $1[4..5], $1[6..7]]) site.data['downloads'][arch]['stage3'] ||= {} site.data['downloads'][arch]['stage3'][$3] = { 'name' => $3, 'date' => date, 'filename' => "%s/%sstage3-%s-%s.tar.bz2" % [$1, $2, $3, $1], 'subdir' => $2, 'size' => $4 } end end end end end end