| Path: | doc-tmp/rdoc/install.rb |
| Last Update: | Sun Mar 09 03:43:55 +0900 2008 |
| OPTS | = | {} |
Install a binary file. We patch in on the way through to insert a #! line. If this is a Unix install, we name the command (for example) ‘rdoc’ and let the shebang line handle running it. Under windows, we add a ’.rb’ extension and let file associations to their stuff
# File doc-tmp/rdoc/install.rb, line 18
18: def installBIN(from, opfile)
19:
20: tmp_dir = nil
21: [".", "/tmp", "c:/temp", $bindir].each{|t|
22: stat = File.stat(t) rescue next
23: if stat.directory? and stat.writable?
24: tmp_dir = t
25: break
26: end
27: }
28:
29: fail "Cannot find a temporary directory" unless tmp_dir
30: tmp_file = File.join(tmp_dir, "_tmp")
31:
32:
33: File.open(from) do |ip|
34: File.open(tmp_file, "w") do |op|
35: ruby = File.join($realbindir, $ruby)
36: # op.puts "#!#{ruby}"
37: op.write ip.read
38: end
39: end
40:
41: opfile += ".rb" if CONFIG["target_os"] =~ /mswin/i
42: FileUtils::makedirs($bindir, {:verbose => true})
43: FileUtils::install(tmp_file, File.join($bindir, opfile),
44: {:mode => 0755, :verbose => true})
45: FileUtils::safe_unlink(tmp_file)
46: end