def out(s) puts s end out < EOS Dir.glob('gems/**/*.gem').each do |x| bn = File.basename(x, '.gem') gem_name, gem_version = bn.split(/-(\d+\.\d+\.\d+)/) unless gem_version gem_name, gem_version = bn.split(/-(\d+\.\d+)/) end gem_sha1 = `openssl sha1 #{x}`.scan(/=\s(.*)$/)[0][0] gem_homepage = `cd gems && (gem specification #{gem_name} | egrep "^homepage")`.scan(/homepage: (.*)$/)[0][0] gem_import_date = `svn info #{x} | egrep "^Last Changed Date"`.strip raise "#{x} doesn't have an SVN last changed date" if gem_import_date.empty? gem_import_date = gem_import_date.scan(/Last Changed Date: (\d\d\d\d-\d\d-\d\d)/)[0][0] out < OpenSourceProject #{gem_name} OpenSourceVersion #{gem_version} OpenSourceWebsiteURL #{gem_homepage} OpenSourceSHA1 #{gem_sha1} OpenSourceImportDate #{gem_import_date} OpenSourceLicenseFile #{gem_name}.txt OpenSourceModifications EOS end out ""