From d4ba676aab09d3d4c51146661dcea11e5aa99f0c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 6 May 2014 21:12:56 +0000 Subject: add script for redirecting to new site --- archive/rfmig.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 archive/rfmig.rb diff --git a/archive/rfmig.rb b/archive/rfmig.rb new file mode 100644 index 0000000..2569c96 --- /dev/null +++ b/archive/rfmig.rb @@ -0,0 +1,32 @@ +#!/usr/bin/env ruby +require 'find' +require 'fileutils' +rfdir = 'rubyforge.org:/var/www/gforge-projects/rainbows/' +newbase = 'http://rainbows.bogomips.org/' +refresh = '' +old = 'rf.old' +new = 'rf.new' +cmd = %W(rsync -av #{rfdir} #{old}/) +unless File.directory?(old) + system(*cmd) or abort "#{cmd.inspect} failed: #$?" +end + +Find.find(old) do |path| + path =~ /\.html\z/ or next + data = File.read(path) + tmp = path.split(%r{/}) + tmp.shift == old or abort "BUG" + dst = "#{new}/#{tmp.join('/')}" + + tmp[-1] = '' if tmp[-1] == "index.html" + url = "#{newbase}#{tmp.join('/')}" + meta = sprintf(refresh, url) + data.sub!(/(]*>)/i, "#$1#{meta}") + data.sub!(/(]*>)/i, + "#{$1}Redirecting to #{url} ...
") + FileUtils.mkdir_p(File.dirname(dst)) + File.open(dst, "w") { |fp| fp.write(data) } +end + +print "Verify results in #{new}/, then run:\n " +puts %W(rsync -av #{new}/ #{rfdir}).join(' ') -- cgit v1.2.3-24-ge0c7