blob: 70898e904addba190eef3b487e638f2cf3783f20 [file] [log] [blame]
#!/usr/bin/ruby
# This is ./rdoc
#
# Call as
# ./rdoc <version-major>.<version-minor> ...
#
def usage msg=nil
STDERR.puts "*** Error: #{msg}" if msg
STDERR.puts "Usage:"
STDERR.puts " rdoc <version-major>.<version-minor> ..."
exit 1
end
home = File.expand_path(File.dirname(__FILE__))
$:.unshift(home)
version = ARGV.shift
usage "Called without arguments" unless version
if version =~ /(\d+)\.(\d+)/
major = $1.to_i
minor = $2.to_i
else
usage "Version argument malformed, must be X.Y"
end
# can't directly require /usr/bin/rdoc since it does not have a '.rb' extension
# work around: create temporary symlink
rdoc = "rdoc#{major}_#{minor}.rb"
new_rdoc = File.join(home, rdoc)
# Symlink ./rdoc.rb to /usr/bin/rdoc
#
File.symlink("/usr/bin/rdoc", new_rdoc) unless File.symlink?(new_rdoc)
begin
if major == 1 && minor == 8
require 'parse_swig.rb' # load the swig parser
else
require 'rdoc'
require 'rdoc/encoding'
require 'rdoc/parser'
# Simple must come first
require 'rdoc/parser/simple'
require File.join(home, 'rdoc_parser_swig')
end
require "./#{rdoc}" # load the original rdoc
ensure
File.delete new_rdoc # Discard the symlink
end