#!/usr/bin/ruby # This is ./rdoc # # Call as # ./rdoc . ... # def usage msg=nil STDERR.puts "*** Error: #{msg}" if msg STDERR.puts "Usage:" STDERR.puts " rdoc . ..." 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