56 lines
1.2 KiB
Ruby
56 lines
1.2 KiB
Ruby
#!/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
|