diff -ur rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/ev/dependencies.rb rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/ev/dependencies.rb
--- rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/ev/dependencies.rb 2004-12-27 13:17:55.000000000 +0100
+++ rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/ev/dependencies.rb 2005-01-13 23:07:30.000000000 +0100
@@ -14,7 +14,7 @@
todo2.each do |file|
File.open(file, "rb") do |f|
strings = f.read.scan(/[\w\-\.]+/) # Hack ???
- strings.delete_if{|s| s !~ /\.dll$/i}
+ strings.delete_if{|s| s !~ /\.(so|o|dll)$/i}
strings.each do |lib|
lib = File.expand_path(lib, path)
diff -ur rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/ev/ftools.rb rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/ev/ftools.rb
--- rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/ev/ftools.rb 2004-12-27 13:17:55.000000000 +0100
+++ rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/ev/ftools.rb 2005-01-13 23:07:30.000000000 +0100
@@ -1,22 +1,12 @@
require "ftools"
class Dir
- def self.mkdirrec(dir)
- pdir = File.dirname(dir)
-
- if not pdir.empty? and not File.directory?(pdir)
- Dir.mkdirrec(pdir)
- end
-
- Dir.mkdir(dir) rescue nil
- end
-
def self.copy(from, to)
if File.directory?(from)
pdir = Dir.pwd
todir = File.expand_path(to)
- mkdirrec(todir)
+ File.mkpath(todir)
Dir.chdir(from)
Dir.new(".").each do |e|
@@ -26,7 +16,7 @@
else
todir = File.dirname(File.expand_path(to))
- mkdirrec(todir)
+ File.mkpath(todir)
File.copy(from, to)
end
@@ -47,16 +37,24 @@
end
Dir.chdir(pdir)
- Dir.delete(entry)
+ begin
+ Dir.delete(entry)
+ rescue => e
+ $stderr.puts e.message
+ end
else
- File.delete(entry)
+ begin
+ File.delete(entry)
+ rescue => e
+ $stderr.puts e.message
+ end
end
end
def self.find(entry=nil, mask=nil)
entry = "." if entry.nil?
- entry = entry.gsub!(/[\/\\]*$/, "") unless entry.nil?
+ entry = entry.gsub(/[\/\\]*$/, "") unless entry.nil?
mask = /^#{mask}$/i if mask.kind_of?(String)
@@ -77,8 +75,8 @@
ensure
Dir.chdir(pdir)
end
- rescue Errno::EACCES => error
- puts error
+ rescue Errno::EACCES => e
+ $stderr.puts e.message
end
else
res += [entry] if mask.nil? or entry =~ mask
@@ -99,7 +97,7 @@
# Rollback
if File.file?(backupfile) and File.file?(controlfile)
- $stdout.puts "Restoring #{file}..."
+ $stderr.puts "Restoring #{file}..."
File.copy(backupfile, file) # Rollback from phase 3
end
diff -ur rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/init.rb
--- rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/init.rb 2004-12-26 22:50:56.000000000 +0100
+++ rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/init.rb 2005-01-11 22:53:53.000000000 +0100
@@ -1,3 +1,7 @@
+$: << File.dirname(File.expand_path(__FILE__))
+
+required = $".collect{|a| "-r " + a}
+
require "ev/oldandnewlocation"
require "ev/dependencies"
require "ev/ftools"
@@ -26,6 +30,11 @@
Config::CONFIG["target_os"] or ""
end
+RUBY = ARGV.include?("--rubyscript2exe-ruby")
+RUBYW = ARGV.include?("--rubyscript2exe-rubyw")
+
+ARGV.delete_if{|arg| arg =~ /^--rubyscript2exe-/}
+
script = ARGV.shift
if script.nil?
@@ -44,10 +53,8 @@
rubyw = false
rubyw = true if script =~ /\.rbw$/
-rubyw = false if ARGV.include?("--rubyscript2exe-ruby")
-rubyw = true if ARGV.include?("--rubyscript2exe-rubyw")
-
-ARGV.delete_if{|arg| arg =~ /^--rubyscript2exe-/}
+rubyw = false if RUBY
+rubyw = true if RUBYW
bindir1 = Config::CONFIG["bindir"]
libdir1 = Config::CONFIG["libdir"]
@@ -60,10 +67,10 @@
$stderr.puts "Tracing #{app}..."
-libs = $:.collect{|a| " -I " + a}
+libs = $:.collect{|a| "-I " + a}
oldlocation do
- system(backslashes("#{bindir1}/ruby #{libs.join(" ")} -r ´#{newlocation("require2lib.rb")}´ ´#{script}´ ´#{libdir2}´ ") + ARGV.collect{|a| "´" + a + "´"}.join(" "))
+ system(backslashes("#{bindir1}/ruby") + " #{required.join(" ")} #{libs.join(" ")} -r ´#{newlocation("require2lib.rb")}´ ´#{script}´ ´#{bindir2}´ ´#{libdir2}´ --require2lib-quiet" + " " + ARGV.collect{|a| "´" + a + "´"}.join(" "))
end
$stderr.puts "Copying files..."
@@ -92,7 +99,7 @@
file = File.basename(s1)
s2 = File.expand_path(file, bindir2)
- $stderr.puts "Copying #{s1} ..."
+ #$stderr.puts "Copying #{s1} ..."
File.copy(s1, s2) unless File.file?(s2)
end
@@ -100,21 +107,21 @@
s1 = oldlocation(script)
s2 = File.expand_path("app.rb", appdir2)
- $stderr.puts "Copying #{s1} ..."
+ #$stderr.puts "Copying #{s1} ..."
File.copy(s1, s2) unless File.file?(s2)
end
if linux?
- tocopy = Dir.find(libdir2, /\.so$/).collect{|file| ldds(file)}.flatten.sort.uniq
+ tocopy = Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}.flatten.sort.uniq
else
- tocopy = Dir.find(libdir2, /\.so$/).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq
+ tocopy = Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq
end
tocopy.each do |s1|
file = File.basename(s1)
s2 = File.expand_path(file, bindir2)
- $stderr.puts "Copying #{s1} ..."
+ #$stderr.puts "Copying #{s1} ..."
File.copy(s1, s2) unless File.file?(s2)
end
@@ -141,8 +148,8 @@
end
File.open(tmplocation("eee.rb"), "w") do |f|
- f.puts "lib = File.expand_path(File.dirname(__FILE__)) + ´/lib´"
- f.puts "lib.sub!(/^.:/, ´/cygdrive/%s´ % $&[0..0].downcase) if lib =~ /^.:/" if cygwin?
+ f.puts "lib = File.expand_path(File.dirname(__FILE__)) + ´/lib´"
+ f.puts "lib.sub!(/^.:/, ´/cygdrive/%s´ % $&[0..0].downcase) if lib =~ /^.:/" if cygwin?
f.puts "$:.clear"
f.puts "$: << lib"
end
diff -ur rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/require2lib.rb rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/require2lib.rb
--- rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/require2lib.rb 2004-12-27 13:17:55.000000000 +0100
+++ rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/require2lib.rb 2005-01-13 23:07:30.000000000 +0100
@@ -1,6 +1,8 @@
-require "ftools"
+require "ev/ftools"
require "rbconfig"
+exit if __FILE__ == $0
+
$require2lib_loaded = []
module Kernel
@@ -13,17 +15,17 @@
end
module Require
- JUSTEV = ARGV.include?("--require2lib-justev")
JUSTRUBYLIB = ARGV.include?("--require2lib-justrubylib")
JUSTSITELIB = ARGV.include?("--require2lib-justsitelib")
+ RUBYGEMS = (not JUSTRUBYLIB)
VERBOSE = ARGV.include?("--require2lib-verbose")
+ QUIET = (ARGV.include?("--require2lib-quiet") and not VERBOSE)
- ARGV.delete_if do |arg|
- arg =~ /^--require2lib-/
- end
+ ARGV.delete_if{|arg| arg =~ /^--require2lib-/}
ORGDIR = Dir.pwd
THISFILE = File.expand_path(__FILE__)
+ BINDIR = File.expand_path(ARGV.shift)
LIBDIR = File.expand_path(ARGV.shift)
RUBYLIBDIR = Config::CONFIG["rubylibdir"]
SITELIBDIR = Config::CONFIG["sitelibdir"]
@@ -39,81 +41,148 @@
File.makedirs(LIBDIR)
+ if RUBYGEMS
+ begin
+ Gem::dir
+ rubygems = true
+ rescue NameError
+ rubygems = false
+ end
+ else
+ rubygems = false
+ end
+
pureruby = true
- ($" + $require2lib_loaded).each do |req|
- if not JUSTEV or req =~ /^ev\//
- unless req =~ /^rubygems[\.\/]/
- catch :found do
- $:.each do |lib|
- fromfile = File.expand_path(req, lib)
- tofile = File.expand_path(req, LIBDIR)
+ if rubygems
+ autorequire = {}
+ dependencies = {}
+ requirelibs = []
+ requireablefiles = []
+
+ Gem::Specification.list.each do |gem|
+ if gem.loaded?
+ $stderr.puts "Found gem #{gem.name} (#{gem.version})." if VERBOSE
+
+ fromdir = gem.full_gem_path
+ todir = File.expand_path(File.join("rubyscript2exe.gems", gem.full_name), LIBDIR)
+
+ Dir.copy(fromdir, todir)
+
+ autorequire[gem.name] = gem.autorequire if gem.autorequire
+
+ dependencies[gem.name] = []
+ gem.dependencies.each do |dep|
+ dependencies[gem.name] << dep.name
+ end
- if File.file?(fromfile)
- unless fromfile == tofile or fromfile == THISFILE
+ #gem.require_paths << gem.bindir if gem.bindir
+ #gem.require_paths.each do |lib|
+ #lib = File.join("rubyscript2exe.gems", gem.full_name, lib)
+ #requirelibs << lib unless requirelibs.include?(lib)
+ #end
+
+ $:.reverse.each do |lib|
+ gemdir = File.join(Gem.dir, "gems")
+ if lib =~ /^#{gemdir}/
+ lib = lib[(gemdir.size+1)..-1]
+ lib = File.join("rubyscript2exe.gems", lib)
+
+ requirelibs << lib unless requirelibs.include?(lib)
+ end
+ end
+
+ Dir.find(todir).each do |file|
+ if File.file?(file)
+ gem.require_paths.each do |lib|
+ unless lib.empty?
+ lib = File.expand_path(lib, todir)
+ lib = lib + "/"
+
+ requireablefiles << file[lib.length..-1] if file =~ /^#{lib}/
+ end
+ end
+ end
+ end
+ end
+ end
+
+ File.open(File.expand_path("rubygems.rb", LIBDIR), "w") do |f|
+ f.puts "module Kernel"
+ f.puts " def require_gem(file, version=nil)"
+ f.puts " autorequire = %s" % autorequire.inspect
+ f.puts " dependencies = %s" % dependencies.inspect
+ f.puts ""
+ f.puts " (dependencies[file] or []).each do |dep|"
+ f.puts " require_gem(dep)"
+ f.puts " end"
+ f.puts ""
+ f.puts " if autorequire.include?(file)"
+ f.puts " file = autorequire[file]"
+ f.puts " require(file)"
+ f.puts " end"
+ f.puts " end"
+ f.puts "end"
+ f.puts ""
+ f.puts "requirelibs = %s" % requirelibs.inspect
+ f.puts ""
+ f.puts "requirelibs.each do |lib|"
+ f.puts " $:.unshift(File.expand_path(lib, File.expand_path(File.dirname(__FILE__))))"
+ f.puts "end"
+ end
+ end
+
+ ($" + $require2lib_loaded).each do |req|
+ unless req =~ /^rubygems[\.\/]/
+ catch :found do
+ $:.each do |lib|
+ fromfile = File.expand_path(req, lib)
+ tofile = File.expand_path(req, LIBDIR)
+
+ if File.file?(fromfile)
+ unless fromfile == tofile or fromfile == THISFILE
+ unless (rubygems and requireablefiles.include?(req)) # ??? requireablefiles might be a little dangerous.
if (not JUSTRUBYLIB and not JUSTSITELIB) or
(JUSTRUBYLIB and fromfile.include?(RUBYLIBDIR)) or
(JUSTSITELIB and fromfile.include?(SITELIBDIR))
$stderr.puts "Found #{fromfile} ." if VERBOSE
- File.makedirs(File.dirname(tofile))
+ File.makedirs(File.dirname(tofile)) unless File.directory?(File.dirname(tofile))
File.copy(fromfile, tofile)
- pureruby = false unless req =~ /\.rb$/i
+ pureruby = false unless req =~ /\.(rbw?|ruby)$/i
else
$stderr.puts "Skipped #{fromfile} ." if VERBOSE
end
end
-
- throw :found
end
- end
- $stderr.puts "Can´t find #{req} ." unless req =~ /^ev\//
+ throw :found
+ end
end
+
+ #$stderr.puts "Can´t find #{req} ." unless req =~ /^ev\//
+ #$stderr.puts "Can´t find #{req} ." unless req =~ /^(\w:)?[\/\\]/
end
end
end
- $stderr.puts "Not all copied files are pure Ruby." unless pureruby
+ $stderr.puts "Not all required files are pure Ruby." unless pureruby or QUIET
- if $".include?("rubygems.rb") or $".include?("rubygems.so")
- autorequire = {}
+ if defined?(RUBYSCRIPT2EXE_DLLS)
+ [RUBYSCRIPT2EXE_DLLS].flatten.each do |dll|
+ fromfile = File.expand_path(dll, ORGDIR)
+ tofile = File.expand_path(File.basename(dll), BINDIR)
+
+ if File.file?(fromfile)
+ unless fromfile == tofile
+ $stderr.puts "Found #{fromfile} ." if VERBOSE
- Gem::Specification.list.each do |gem|
-
- unless gem.autorequire.nil?
- unless $".collect{|s| (s =~ /^#{gem.autorequire}\.\w+$/)}.compact.empty?
- autorequire[gem.name] = gem.autorequire
-
- gem.require_paths.flatten.each do |lib|
- lib = File.expand_path(lib, gem.full_gem_path)
-
- gem.files.each do |file|
- fromfile = File.expand_path(file, gem.full_gem_path)
- tofile = File.expand_path(file, File.dirname(LIBDIR))
-
- if fromfile.include?(lib) and File.file?(fromfile)
- $stderr.puts "Found #{fromfile} ." if VERBOSE
-
- File.makedirs(File.dirname(tofile))
- File.copy(fromfile, tofile)
- end
- end
- end
+ File.makedirs(File.dirname(tofile)) unless File.directory?(File.dirname(tofile))
+ File.copy(fromfile, tofile)
end
end
end
-
- File.open(File.expand_path("rubygems.rb", LIBDIR), "w") do |f|
- f.puts "module Kernel"
- f.puts " def require_gem(file, version=nil)"
- f.puts " autorequire = %s" % autorequire.inspect
- f.puts " file = autorequire[file] if autorequire.include?(file)"
- f.puts " require(file)"
- f.puts " end"
- f.puts "end"
- end
end
end
end
Binary files rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-0.3.0.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.3.1.tar.gz/rubyscript2exe/eeew.exe differ