diff -ur allinoneruby-none.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.1.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-none.tar.gz/allinoneruby/ev/dependencies.rb 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/ev/dependencies.rb 2004-07-30 18:00:17.000000000 +0200 @@ -0,0 +1,32 @@ +def dlls(file, notthedefaults=true) + + # Only the dependencies in the same directory as the executable. + + todo = [] + res = [] + + todo << File.expand_path(file) + + while todo.length > 0 + todo2 = todo + todo = [] + + todo2.each do |file| + File.open(file, "rb") do |f| + strings = f.read.scan(/[\w\-\.]+/) # Hack ??? + strings.delete_if{|s| s !~ /\.dll$/i} + + strings.each do |lib| + lib = File.expand_path(lib, File.dirname(file)) + + if not lib.nil? and File.file?(lib) and not res.include?(lib) + todo << lib + res << lib + end + end + end + end + end + + res +end diff -ur allinoneruby-none.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.1.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-none.tar.gz/allinoneruby/ev/ftools.rb 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/ev/ftools.rb 2004-07-30 18:00:17.000000000 +0200 @@ -0,0 +1,115 @@ +require "ftools" + +class Dir + def self.mkdirrec(dir) + pdir = File.dirname(dir) + + if not pdir.empty? and not FileTest.directory?(pdir) + mkdirrec (pdir) + end + + Dir.mkdir(dir) rescue nil + end + + def self.copy(from, to) + if FileTest.file?(from) + todir = File.dirname(File.expand_path(to)) + + mkdirrec(todir) + + File.copy(from, to) + end + + if FileTest.directory?(from) + pdir = Dir.pwd + todir = File.expand_path(to) + + mkdirrec(todir) + + Dir.chdir(from) + Dir.new(".").each do |e| + copy(e, todir+"/"+e) if not [".", ".."].include?(e) + end + Dir.chdir(pdir) + end + end + + def self.move(from, to) + copy(from, to) + rm_rf(from) + end + + def self.rm_rf(entry) + if FileTest.file?(entry) + File.delete(entry) + end + + if FileTest.directory?(entry) + pdir = Dir.pwd + + Dir.chdir(entry) + Dir.new(".").each do |e| + rm_rf(e) if not [".", ".."].include?(e) + end + Dir.chdir(pdir) + + Dir.rmdir(entry) + end + end +end + +class File + def self.rollbackup(file, mode=nil) + backupfile = file + ".RB.BACKUP" + controlfile = file + ".RB.CONTROL" + + File.touch(file) unless File.file?(file) + + # Rollback + + if File.file?(backupfile) and File.file?(controlfile) + $stdout.puts "Restoring #{file}..." + + File.copy(backupfile, file) # Rollback from phase 3 + end + + # Reset + + File.delete(backupfile) if File.file?(backupfile) # Reset from phase 2 or 3 + File.delete(controlfile) if File.file?(controlfile) # Reset from phase 3 or 4 + + # Backup + + File.copy(file, backupfile) # Enter phase 2 + File.touch(controlfile) # Enter phase 3 + + # The real thing + + if block_given? + if mode.nil? + yield + else + File.open(file, mode) do |f| + yield(f) + end + end + end + + # Cleanup + + File.delete(backupfile) # Enter phase 4 + File.delete(controlfile) # Enter phase 5 + + # Return, like File.open + + if block_given? + return nil + else + return File.open(file, (mode or "r")) + end + end + + def self.touch(file) + File.open(file, "a"){|f|} + end +end diff -ur allinoneruby-none.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-none.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-07-30 18:00:17.000000000 +0200 @@ -0,0 +1,44 @@ +ENV["OLDDIR"] = Dir.pwd if not ENV.include?("OLDDIR") +ENV["NEWDIR"] = Dir.pwd if not ENV.include?("NEWDIR") + +begin + oldlocation +rescue NameError + def oldlocation(file="") + dir = ENV["OLDDIR"] + res = nil + + if block_given? + pdir = Dir.pwd + + Dir.chdir(dir) + res = yield + Dir.chdir(pdir) + else + res = File.expand_path(file, dir) if not file.nil? + end + + res + end +end + +begin + newlocation +rescue NameError + def newlocation(file="") + dir = ENV["NEWDIR"] + res = nil + + if block_given? + pdir = Dir.pwd + + Dir.chdir(dir) + res = yield + Dir.chdir(pdir) + else + res = File.expand_path(file, dir) if not file.nil? + end + + res + end +end diff -ur allinoneruby-none.tar.gz/allinoneruby/init.rb allinoneruby-0.1.tar.gz/allinoneruby/init.rb --- allinoneruby-none.tar.gz/allinoneruby/init.rb 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/init.rb 2004-07-30 17:05:27.000000000 +0200 @@ -0,0 +1,77 @@ +require "ev/oldandnewlocation" +require "ev/dependencies" +require "ev/ftools" +require "rbconfig" + +exit if ARGV.include?("--exit") + +def backslashes(s) + s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\") if windows? + s +end + +def windows? + not (target_os.downcase =~ /32/).nil? # Hack ??? +end + +def target_os + Config::CONFIG["target_os"] or "" +end + +rubyw = false +rubyw = false if (ARGV.include?("-d") or ARGV.include?("--ruby")) +rubyw = true if (ARGV.include?("-w") or ARGV.include?("--rubyw")) + +ARGV.delete_if{|s| s =~ /^-/} + +bindir1 = Config::CONFIG["bindir"] +libdir1 = Config::CONFIG["libdir"] +bindir2 = "bin/" +libdir2 = "lib/" +exefile = (ARGV.shift or "allinoneruby.exe") +rubylibdir1 = Config::CONFIG["rubylibdir"] + +raise "#{bindir2} already exists." if File.directory?(bindir2) +raise "#{libdir2} already exists." if File.directory?(libdir2) + +Dir.mkdir(bindir2) +Dir.mkdir(libdir2) + +rubyexe = "#{bindir1}/ruby.exe" +rubywexe = "#{bindir1}/rubyw.exe" + +([rubyexe, rubywexe] + dlls(rubyexe)).each do |s1| + file = File.basename(s1) + s2 = File.expand_path(file, bindir2) + + puts "Copying #{s1} ..." + File.copy(s1, s2) +end + +file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") +s1 = rubylibdir1 +s2 = File.expand_path(file, libdir2) + +puts "Copying #{s1}/ ..." +Dir.copy(s1, s2) + +puts "Creating #{exefile} ..." + +File.open("allinoneruby.eee", "w") do |f| + f.puts "r bin" + f.puts "r lib" + + rubyexe = "ruby.exe" + rubyexe = "rubyw.exe" if rubyw + + f.puts "c %tempdir%/#{bindir2}/#{rubyexe} %quotedparms%" +end + +eeeexe = "eee.exe" +eeeexe = "eeew.exe" if rubyw + +system(backslashes("./eee allinoneruby.eee #{exefile} #{eeeexe}")) + +oldlocation do + File.copy(newlocation(exefile), exefile) +end diff -ur allinoneruby-none.tar.gz/allinoneruby/LICENSE allinoneruby-0.1.tar.gz/allinoneruby/LICENSE --- allinoneruby-none.tar.gz/allinoneruby/LICENSE 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/LICENSE 2004-07-27 16:32:13.000000000 +0200 @@ -0,0 +1,15 @@ +# Copyright Erik Veenstra <allinoneruby@erikveen.dds.nl> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place, Suite 330, +# Boston, MA 02111-1307 USA. diff -ur allinoneruby-none.tar.gz/allinoneruby/README allinoneruby-0.1.tar.gz/allinoneruby/README --- allinoneruby-none.tar.gz/allinoneruby/README 2007-04-15 21:43:54.000000000 +0200 +++ allinoneruby-0.1.tar.gz/allinoneruby/README 2004-07-26 23:13:29.000000000 +0200 @@ -0,0 +1,8 @@ +The best way to use AllInOneRuby is the RB, not this TAR.GZ. +The latter is just for playing with the internals. Both are +available on the site. + + Usage: ruby init.rb [-d|-w|--ruby|--rubyw] + +For more information, see +http://www.erikveen.dds.nl/allinoneruby/ . Binary files allinoneruby-none.tar.gz/allinoneruby/eee.exe and allinoneruby-0.1.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-none.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.1.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.1.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.1.1.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.1.tar.gz/allinoneruby/ev/dependencies.rb 2004-07-30 18:00:17.000000000 +0200 +++ allinoneruby-0.1.1.tar.gz/allinoneruby/ev/dependencies.rb 2004-08-04 23:58:20.000000000 +0200 @@ -1,4 +1,4 @@ -def dlls(file, notthedefaults=true) +def dlls(file, path=File.dirname(file)) # Only the dependencies in the same directory as the executable. @@ -17,7 +17,7 @@ strings.delete_if{|s| s !~ /\.dll$/i} strings.each do |lib| - lib = File.expand_path(lib, File.dirname(file)) + lib = File.expand_path(lib, path) if not lib.nil? and File.file?(lib) and not res.include?(lib) todo << lib diff -ur allinoneruby-0.1.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.1.1.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.1.tar.gz/allinoneruby/ev/ftools.rb 2004-07-30 18:00:17.000000000 +0200 +++ allinoneruby-0.1.1.tar.gz/allinoneruby/ev/ftools.rb 2004-08-04 23:58:20.000000000 +0200 @@ -4,23 +4,15 @@ def self.mkdirrec(dir) pdir = File.dirname(dir) - if not pdir.empty? and not FileTest.directory?(pdir) - mkdirrec (pdir) + 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 FileTest.file?(from) - todir = File.dirname(File.expand_path(to)) - - mkdirrec(todir) - - File.copy(from, to) - end - - if FileTest.directory?(from) + if File.directory?(from) pdir = Dir.pwd todir = File.expand_path(to) @@ -28,33 +20,61 @@ Dir.chdir(from) Dir.new(".").each do |e| - copy(e, todir+"/"+e) if not [".", ".."].include?(e) + Dir.copy(e, todir+"/"+e) if not [".", ".."].include?(e) end Dir.chdir(pdir) + else + todir = File.dirname(File.expand_path(to)) + + mkdirrec(todir) + + File.copy(from, to) end end def self.move(from, to) - copy(from, to) - rm_rf(from) + Dir.copy(from, to) + Dir.rm_rf(from) end def self.rm_rf(entry) - if FileTest.file?(entry) + if File.ftype(entry) == "directory" + pdir = Dir.pwd + + Dir.chdir(entry) + Dir.new(".").each do |e| + Dir.rm_rf(e) if not [".", ".."].include?(e) + end + Dir.chdir(pdir) + + Dir.delete(entry) + else File.delete(entry) end + end + + def self.find(entry=nil, mask=nil) + entry = @dir if entry.nil? + + entry.gsub!(/[\/\\]*$/, "") unless entry.nil? + + res = [] - if FileTest.directory?(entry) + if File.directory?(entry) pdir = Dir.pwd + res += ["%s/" % entry] if mask.nil? or entry =~ mask + Dir.chdir(entry) Dir.new(".").each do |e| - rm_rf(e) if not [".", ".."].include?(e) + res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) end Dir.chdir(pdir) - - Dir.rmdir(entry) + else + res += [entry] if mask.nil? or entry =~ mask end + + res end end @@ -112,4 +132,30 @@ def self.touch(file) File.open(file, "a"){|f|} end + + def self.which(file) + res = nil + + if windows? + file = file.gsub(/\.exe$/i, "") + ".exe" + sep = ";" + else + sep = ":" + end + + catch :stop do + ENV["PATH"].split(/#{sep}/).reverse.each do |d| + if File.directory?(d) + Dir.new(d).each do |e| + if e.downcase == file.downcase + res = File.expand_path(e, d) + throw :stop + end + end + end + end + end + + res + end end diff -ur allinoneruby-0.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.1.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-07-30 18:00:17.000000000 +0200 +++ allinoneruby-0.1.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-08-04 23:58:20.000000000 +0200 @@ -1,5 +1,5 @@ -ENV["OLDDIR"] = Dir.pwd if not ENV.include?("OLDDIR") -ENV["NEWDIR"] = Dir.pwd if not ENV.include?("NEWDIR") +ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") +ENV["NEWDIR"] = File.dirname($0) unless ENV.include?("NEWDIR") begin oldlocation @@ -15,7 +15,7 @@ res = yield Dir.chdir(pdir) else - res = File.expand_path(file, dir) if not file.nil? + res = File.expand_path(file, dir) unless file.nil? end res @@ -36,7 +36,7 @@ res = yield Dir.chdir(pdir) else - res = File.expand_path(file, dir) if not file.nil? + res = File.expand_path(file, dir) unless file.nil? end res diff -ur allinoneruby-0.1.tar.gz/allinoneruby/init.rb allinoneruby-0.1.1.tar.gz/allinoneruby/init.rb --- allinoneruby-0.1.tar.gz/allinoneruby/init.rb 2004-07-30 17:05:27.000000000 +0200 +++ allinoneruby-0.1.1.tar.gz/allinoneruby/init.rb 2004-07-31 02:10:58.000000000 +0200 @@ -55,6 +55,14 @@ puts "Copying #{s1}/ ..." Dir.copy(s1, s2) +Dir.find(libdir2, /\.so$/).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq.each do |s1| + file = File.basename(s1) + s2 = File.expand_path(file, bindir2) + + puts "Copying #{s1} ..." + File.copy(s1, s2) +end + puts "Creating #{exefile} ..." File.open("allinoneruby.eee", "w") do |f| @@ -73,5 +81,8 @@ system(backslashes("./eee allinoneruby.eee #{exefile} #{eeeexe}")) oldlocation do - File.copy(newlocation(exefile), exefile) + from = newlocation(exefile) + to = oldlocation(exefile) + + File.copy(from, to) unless from == to end Binary files allinoneruby-0.1.tar.gz/allinoneruby/eee.exe and allinoneruby-0.1.1.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.1.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.1.1.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.1.1.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.2.0.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.1.1.tar.gz/allinoneruby/ev/dependencies.rb 2004-08-04 23:58:20.000000000 +0200 +++ allinoneruby-0.2.0.tar.gz/allinoneruby/ev/dependencies.rb 2004-12-27 13:34:11.000000000 +0100 @@ -1,6 +1,6 @@ def dlls(file, path=File.dirname(file)) - # Only the dependencies in the same directory as the executable. + # Only the dependencies in the same directory as the executable or the given directory. todo = [] res = [] @@ -30,3 +30,44 @@ res end + +def ldds(file, notthedefaults=true) + + # All dependencies. + + todo = [] + res = [] + tempfile = "/tmp/ev.dependencies.%d.tmp" % Process.pid + + todo << File.expand_path(file) + + while todo.length > 0 + todo2 = todo + todo = [] + + todo2.each do |file| + File.copy(file, tempfile) # Libraries on Debian are no executables. + File.chmod(0755, tempfile) + + `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]}.each do |lib| + if not lib.nil? and File.file?(lib) and not res.include?(lib) + todo << lib + res << lib + end + end + + File.delete(tempfile) + end + end + + # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/rlibraries.html + # http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/IA32/spec/rlibraries.html + + lsb_common = ["libX11.so.6", "libXt.so.6", "libGL.so.1", "libXext.so.6", "libICE.so.6", "libSM.so.6", "libdl.so.2", "libcrypt.so.1", "libz.so.1", "libncurses.so.5", "libutil.so.1", "libpthread.so.0", "libpam.so.0", "libgcc_s.so.1"] + lsb_ia32 = ["libm.so.6", "libdl.so.2", "libcrypt.so.1", "libc.so.6", "libpthread.so.0", "ld-lsb.so.1"] + lsb = lsb_common + lsb_ia32 + + res.delete_if{|s| lsb.include?(File.basename(s))} if notthedefaults + + res +end diff -ur allinoneruby-0.1.1.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.0.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.1.1.tar.gz/allinoneruby/ev/ftools.rb 2004-08-04 23:58:20.000000000 +0200 +++ allinoneruby-0.2.0.tar.gz/allinoneruby/ev/ftools.rb 2004-12-27 13:34:11.000000000 +0100 @@ -54,9 +54,11 @@ end def self.find(entry=nil, mask=nil) - entry = @dir if entry.nil? + entry = "." if entry.nil? - entry.gsub!(/[\/\\]*$/, "") unless entry.nil? + entry = entry.gsub!(/[\/\\]*$/, "") unless entry.nil? + + mask = /^#{mask}$/i if mask.kind_of?(String) res = [] @@ -65,11 +67,19 @@ res += ["%s/" % entry] if mask.nil? or entry =~ mask - Dir.chdir(entry) - Dir.new(".").each do |e| - res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + begin + Dir.chdir(entry) + + begin + Dir.new(".").each do |e| + res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + end + ensure + Dir.chdir(pdir) end - Dir.chdir(pdir) + rescue Errno::EACCES => error + puts error + end else res += [entry] if mask.nil? or entry =~ mask end @@ -82,6 +92,7 @@ def self.rollbackup(file, mode=nil) backupfile = file + ".RB.BACKUP" controlfile = file + ".RB.CONTROL" + res = nil File.touch(file) unless File.file?(file) @@ -107,10 +118,10 @@ if block_given? if mode.nil? - yield + res = yield else File.open(file, mode) do |f| - yield(f) + res = yield(f) end end end @@ -122,15 +133,17 @@ # Return, like File.open - if block_given? - return nil - else - return File.open(file, (mode or "r")) - end + res = File.open(file, (mode or "r")) unless block_given? + + res end def self.touch(file) - File.open(file, "a"){|f|} + if File.exists?(file) + File.utime(Time.now, File.mtime(file), file) + else + File.open(file, "a"){|f|} + end end def self.which(file) diff -ur allinoneruby-0.1.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.0.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.1.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-08-04 23:58:20.000000000 +0200 +++ allinoneruby-0.2.0.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-12-27 13:34:11.000000000 +0100 @@ -1,5 +1,27 @@ +temp = (ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/") +dir = "#{temp}/oldandnewlocation.#{Process.pid}" + ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") ENV["NEWDIR"] = File.dirname($0) unless ENV.include?("NEWDIR") +ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") + +class Dir + def self.rm_rf(entry) + if File.ftype(entry) == "directory" + pdir = Dir.pwd + + Dir.chdir(entry) + Dir.new(".").each do |e| + Dir.rm_rf(e) if not [".", ".."].include?(e) + end + Dir.chdir(pdir) + + Dir.delete(entry) + else + File.delete(entry) + end + end +end begin oldlocation @@ -42,3 +64,37 @@ res end end + +begin + tmplocation +rescue NameError + dir = ENV["TEMPDIR"] + + Dir.rm_rf(dir) if File.directory?(dir) + Dir.mkdir(dir) + + at_exit do + if File.directory?(dir) + Dir.chdir(dir) + Dir.chdir("..") + Dir.rm_rf(dir) + end + end + + def tmplocation(file="") + dir = ENV["TEMPDIR"] + res = nil + + if block_given? + pdir = Dir.pwd + + Dir.chdir(dir) + res = yield + Dir.chdir(pdir) + else + res = File.expand_path(file, dir) unless file.nil? + end + + res + end +end diff -ur allinoneruby-0.1.1.tar.gz/allinoneruby/init.rb allinoneruby-0.2.0.tar.gz/allinoneruby/init.rb --- allinoneruby-0.1.1.tar.gz/allinoneruby/init.rb 2004-07-31 02:10:58.000000000 +0200 +++ allinoneruby-0.2.0.tar.gz/allinoneruby/init.rb 2004-12-26 20:09:53.000000000 +0100 @@ -10,8 +10,16 @@ s end +def linux? + not windows? and not cygwin? # Hack ??? +end + def windows? - not (target_os.downcase =~ /32/).nil? # Hack ??? + not (target_os.downcase =~ /32/).nil? # Hack ??? +end + +def cygwin? + not (target_os.downcase =~ /cyg/).nil? # Hack ??? end def target_os @@ -21,68 +29,141 @@ rubyw = false rubyw = false if (ARGV.include?("-d") or ARGV.include?("--ruby")) rubyw = true if (ARGV.include?("-w") or ARGV.include?("--rubyw")) +site = false +site = true if (ARGV.include?("-s") or ARGV.include?("--site")) ARGV.delete_if{|s| s =~ /^-/} +exefile = (ARGV.shift or (windows? ? "allinoneruby.exe" : "allinoneruby.bin")) + bindir1 = Config::CONFIG["bindir"] libdir1 = Config::CONFIG["libdir"] -bindir2 = "bin/" -libdir2 = "lib/" -exefile = (ARGV.shift or "allinoneruby.exe") +bindir2 = tmplocation("bin/") +libdir2 = tmplocation("lib/") rubylibdir1 = Config::CONFIG["rubylibdir"] +sitelibdir1 = Config::CONFIG["sitelibdir"] -raise "#{bindir2} already exists." if File.directory?(bindir2) -raise "#{libdir2} already exists." if File.directory?(libdir2) +Dir.mkdir(bindir2) unless File.directory?(bindir2) +Dir.mkdir(libdir2) unless File.directory?(libdir2) -Dir.mkdir(bindir2) -Dir.mkdir(libdir2) +if linux? + rubyexe = "#{bindir1}/ruby" +else + rubyexe = "#{bindir1}/ruby.exe" + rubywexe = "#{bindir1}/rubyw.exe" +end -rubyexe = "#{bindir1}/ruby.exe" -rubywexe = "#{bindir1}/rubyw.exe" +if linux? + tocopy = ldds(rubyexe) + tocopy << rubyexe if File.file?(rubyexe) +else + tocopy = dlls(rubyexe) + tocopy << rubyexe if File.file?(rubyexe) + tocopy << rubywexe if File.file?(rubywexe) +end -([rubyexe, rubywexe] + dlls(rubyexe)).each do |s1| +tocopy.each do |s1| file = File.basename(s1) s2 = File.expand_path(file, bindir2) - puts "Copying #{s1} ..." - File.copy(s1, s2) + $stderr.puts "Copying #{s1} ..." + File.copy(s1, s2) unless File.file?(s2) end -file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") -s1 = rubylibdir1 -s2 = File.expand_path(file, libdir2) +begin + file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") + s1 = rubylibdir1 + s2 = File.expand_path(file, libdir2) -puts "Copying #{s1}/ ..." -Dir.copy(s1, s2) + $stderr.puts "Copying #{s1}/ ..." + Dir.copy(s1, s2) unless File.directory?(s2) +end + +if site + file = sitelibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") + s1 = sitelibdir1 + s2 = File.expand_path(file, libdir2) + + $stderr.puts "Copying #{s1}/ ..." + Dir.copy(s1, s2) unless File.directory?(s2) +end + +if linux? + tocopy = Dir.find(libdir2, /\.so$/).collect{|file| ldds(file)}.flatten.sort.uniq +else + tocopy = Dir.find(libdir2, /\.so$/).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq +end -Dir.find(libdir2, /\.so$/).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq.each do |s1| +tocopy.each do |s1| file = File.basename(s1) s2 = File.expand_path(file, bindir2) - puts "Copying #{s1} ..." - File.copy(s1, s2) + $stderr.puts "Copying #{s1} ..." + File.copy(s1, s2) unless File.file?(s2) end -puts "Creating #{exefile} ..." +eeeexe = "eee.exe" +eeeexe = "eeew.exe" if rubyw +eeeexe = "eee.bin" if linux? +appexe = exefile -File.open("allinoneruby.eee", "w") do |f| - f.puts "r bin" - f.puts "r lib" +$stderr.puts "Creating #{appexe} ..." + +if linux? + File.open(tmplocation("eee.sh"), "w") do |f| + f.puts "PDIR=$1;shift" + f.puts "DIR=$(pwd)" + f.puts "cd $PDIR" + f.puts " chmod +x bin/ruby" + f.puts " export PATH=$(pwd)/bin:$PATH" + f.puts " export LD_LIBRARY_PATH=$(pwd)/bin:LD_LIBRARY_PATH" + f.puts "cd $DIR" + f.puts "$*" + end +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 "$:.clear" + $:.each do |s| + f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') + end +end +File.open(tmplocation("app.eee"), "w") do |f| rubyexe = "ruby.exe" rubyexe = "rubyw.exe" if rubyw + rubyexe = "ruby" if linux? - f.puts "c %tempdir%/#{bindir2}/#{rubyexe} %quotedparms%" + f.puts "r bin" + f.puts "r lib" + f.puts "f eee.sh" if linux? + f.puts "f eee.rb" + if linux? + f.puts "c source %tempdir%/eee.sh %tempdir% %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb %quotedparms%" + elsif cygwin? + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb %quotedparms%" + else + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\eee.rb %quotedparms%" + end end -eeeexe = "eee.exe" -eeeexe = "eeew.exe" if rubyw +from = newlocation(eeeexe) +to = tmplocation(eeeexe) -system(backslashes("./eee allinoneruby.eee #{exefile} #{eeeexe}")) +File.copy(from, to) unless from == to +File.chmod(0755, to) if linux? -oldlocation do - from = newlocation(exefile) - to = oldlocation(exefile) +tmplocation do + ENV["EEEEXE"] = eeeexe + ENV["EEEDIR"] = Dir.pwd - File.copy(from, to) unless from == to + system(backslashes("#{newlocation(linux? ? "eee.bin" : "eee")} app.eee #{appexe}")) end + +from = tmplocation(appexe) +to = oldlocation(appexe) + +File.copy(from, to) unless from == to +File.chmod(0755, to) if linux? diff -ur allinoneruby-0.1.1.tar.gz/allinoneruby/README allinoneruby-0.2.0.tar.gz/allinoneruby/README --- allinoneruby-0.1.1.tar.gz/allinoneruby/README 2004-07-26 23:13:29.000000000 +0200 +++ allinoneruby-0.2.0.tar.gz/allinoneruby/README 2004-12-08 10:21:38.000000000 +0100 @@ -2,7 +2,9 @@ The latter is just for playing with the internals. Both are available on the site. - Usage: ruby init.rb [-d|-w|--ruby|--rubyw] + Usage: ruby init.rb [-d|-w|--ruby|--rubyw] [-s|--site] + +On Linux, there's no difference between ruby and rubyw. For more information, see -http://www.erikveen.dds.nl/allinoneruby/ . +http://www.erikveen.dds.nl/allinoneruby/index.html . Binary files allinoneruby-0.1.1.tar.gz/allinoneruby/eee.bin and allinoneruby-0.2.0.tar.gz/allinoneruby/eee.bin differ Binary files allinoneruby-0.1.1.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.0.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.1.1.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.0.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/_/init.rb allinoneruby-0.2.1.tar.gz/allinoneruby/_/init.rb --- allinoneruby-0.2.0.tar.gz/allinoneruby/_/init.rb 2007-04-15 21:43:59.000000000 +0200 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/_/init.rb 2005-01-29 15:30:10.000000000 +0100 @@ -0,0 +1,198 @@ +$: << File.dirname(File.expand_path(__FILE__)) + +require "ev/oldandnewlocation" +require "ev/dependencies" +require "ev/ftools" +require "rbconfig" + +exit if ARGV.include?("--exit") + +def backslashes(s) + s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\") if windows? + s +end + +def linux? + not darwin? and not windows? and not cygwin? # Hack ??? +end + +def darwin? + not (target_os.downcase =~ /darwin/).nil? # Hack ??? +end + +def windows? + not (target_os.downcase =~ /32/).nil? # Hack ??? +end + +def cygwin? + not (target_os.downcase =~ /cyg/).nil? # Hack ??? +end + +def target_os + Config::CONFIG["target_os"] or "" +end + +rubyw = false +rubyw = false if (ARGV.include?("-d") or ARGV.include?("--ruby")) +rubyw = true if (ARGV.include?("-w") or ARGV.include?("--rubyw")) +site = false +site = true if (ARGV.include?("-s") or ARGV.include?("--site")) + +ARGV.delete_if{|s| s =~ /^-/} + +exefile = (ARGV.shift or (windows? ? "allinoneruby.exe" : "allinoneruby.bin")) + +bindir1 = Config::CONFIG["bindir"] +libdir1 = Config::CONFIG["libdir"] +bindir2 = tmplocation("bin/") +libdir2 = tmplocation("lib/") +rubylibdir1 = Config::CONFIG["rubylibdir"] +sitelibdir1 = Config::CONFIG["sitelibdir"] + +Dir.mkdir(bindir2) unless File.directory?(bindir2) +Dir.mkdir(libdir2) unless File.directory?(libdir2) + +if linux? + rubyexe = "#{bindir1}/ruby" +else + rubyexe = "#{bindir1}/ruby.exe" + rubywexe = "#{bindir1}/rubyw.exe" +end + +if linux? + tocopy = ldds(rubyexe) + tocopy << rubyexe if File.file?(rubyexe) +else + tocopy = dlls(rubyexe) + tocopy << rubyexe if File.file?(rubyexe) + tocopy << rubywexe if File.file?(rubywexe) +end + +tocopy.each do |s1| + file = File.basename(s1) + s2 = File.expand_path(file, bindir2) + + #$stderr.puts "Copying #{s1} ..." + File.copy(s1, s2) unless File.file?(s2) +end + +begin + file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") + s1 = rubylibdir1 + s2 = File.expand_path(file, libdir2) + + #$stderr.puts "Copying #{s1}/ ..." + Dir.copy(s1, s2) unless File.directory?(s2) +end + +if site + file = sitelibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") + s1 = sitelibdir1 + s2 = File.expand_path(file, libdir2) + + #$stderr.puts "Copying #{s1}/ ..." + Dir.copy(s1, s2) unless File.directory?(s2) +end + +if linux? + tocopy = Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}.flatten.sort.uniq +else + 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} ..." + File.copy(s1, s2) unless File.file?(s2) +end + +eeeexe = "eee.exe" +eeeexe = "eeew.exe" if rubyw +eeeexe = "eee.bin" if linux? +appexe = exefile + +$stderr.puts "Creating #{appexe} ..." + +if linux? + File.open(tmplocation("eee.sh"), "w") do |f| + f.puts "PDIR=$1;shift" + f.puts "DIR=$(pwd)" + f.puts "cd $PDIR" + f.puts " chmod +x bin/ruby" + f.puts " export PATH=$(pwd)/bin:$PATH" + f.puts " export LD_LIBRARY_PATH=$(pwd)/bin:LD_LIBRARY_PATH" + f.puts "cd $DIR" + f.puts "$*" + end +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 "$:.clear" + $:.each do |s| + f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') + end +end + +File.open(tmplocation("bootstrap.rb"), "w") do |f| + f.puts "load($0 = ARGV.shift)" +end + +File.open(tmplocation("empty.rb"), "w") do |f| +end + +File.open(tmplocation("app.eee"), "w") do |f| + rubyexe = "ruby.exe" + rubyexe = "rubyw.exe" if rubyw + rubyexe = "ruby" if linux? + + f.puts "r bin" + f.puts "r lib" + f.puts "f eee.sh" if linux? + f.puts "f eee.rb" + f.puts "f bootstrap.rb" + f.puts "f empty.rb" + if linux? + f.puts "c source %tempdir%/eee.sh %tempdir% %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" + elsif cygwin? + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" + else + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\eee.rb -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb %quotedparms%" + end +end + +from = newlocation(eeeexe) +to = tmplocation(eeeexe) + +File.copy(from, to) unless from == to +File.chmod(0755, to) if linux? + +tmplocation do + ENV["EEE_EXE"] = eeeexe + ENV["EEE_DIR"] = Dir.pwd + + eeebin1 = newlocation("eee.exe") + eeebin1 = newlocation("eee.bin") if linux? + eeebin1 = newlocation("eee.bin2") if darwin? + + eeebin2 = tmplocation("eee.exe") + eeebin2 = tmplocation("eee.bin") if linux? + eeebin2 = tmplocation("eee.bin") if darwin? + + from = eeebin1 + to = eeebin2 + + File.copy(from, to) unless from == to + File.chmod(0755, to) if linux? or darwin? + + system(backslashes("#{eeebin2} app.eee #{appexe}")) +end + +from = tmplocation(appexe) +to = oldlocation(appexe) + +File.copy(from, to) unless from == to +File.chmod(0755, to) if linux? diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.2.1.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.2.0.tar.gz/allinoneruby/ev/dependencies.rb 2004-12-27 13:34:11.000000000 +0100 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/ev/dependencies.rb 2005-03-26 18:12:23.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) @@ -49,7 +49,10 @@ File.copy(file, tempfile) # Libraries on Debian are no executables. File.chmod(0755, tempfile) - `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]}.each do |lib| + libs = `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]} if linux? + libs = `otool -L #{tempfile}`.split(/\r*\n/)[1..-1].collect{|line| line.split(/\s+/)[1]} if darwin? + + libs.each do |lib| if not lib.nil? and File.file?(lib) and not res.include?(lib) todo << lib res << lib diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.1.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.2.0.tar.gz/allinoneruby/ev/ftools.rb 2004-12-27 13:34:11.000000000 +0100 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/ev/ftools.rb 2005-03-26 18:12:23.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 @@ -38,6 +28,8 @@ end def self.rm_rf(entry) + File.chmod(0755, entry) + if File.ftype(entry) == "directory" pdir = Dir.pwd @@ -47,16 +39,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 +77,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 +99,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 allinoneruby-0.2.0.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.2.0.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2004-12-27 13:34:11.000000000 +0100 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-03-26 18:12:23.000000000 +0100 @@ -1,12 +1,14 @@ -temp = (ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/") +temp = File.expand_path((ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/")) dir = "#{temp}/oldandnewlocation.#{Process.pid}" -ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") -ENV["NEWDIR"] = File.dirname($0) unless ENV.include?("NEWDIR") -ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") +ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") +ENV["NEWDIR"] = File.expand_path(File.dirname($0)) unless ENV.include?("NEWDIR") +ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") class Dir def self.rm_rf(entry) + File.chmod(0755, entry) + if File.ftype(entry) == "directory" pdir = Dir.pwd @@ -16,9 +18,17 @@ 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 end diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/init.rb allinoneruby-0.2.1.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.0.tar.gz/allinoneruby/init.rb 2004-12-26 20:09:53.000000000 +0100 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/init.rb 2005-03-23 22:49:16.000000000 +0100 @@ -1,9 +1,11 @@ +$: << File.dirname(File.expand_path(__FILE__)) + require "ev/oldandnewlocation" require "ev/dependencies" require "ev/ftools" require "rbconfig" -exit if ARGV.include?("--exit") +exit if defined?(REQUIRE2LIB) def backslashes(s) s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\") if windows? @@ -11,30 +13,50 @@ end def linux? - not windows? and not cygwin? # Hack ??? + not darwin? and not windows? and not cygwin? +end + +def darwin? + not (target_os.downcase =~ /darwin/).nil? end def windows? - not (target_os.downcase =~ /32/).nil? # Hack ??? + not (target_os.downcase =~ /32/).nil? end def cygwin? - not (target_os.downcase =~ /cyg/).nil? # Hack ??? + not (target_os.downcase =~ /cyg/).nil? end def target_os Config::CONFIG["target_os"] or "" end +def copyto(files, dest) + [files].flatten.sort.uniq.each do |fromfile| + tofile = File.expand_path(File.basename(fromfile), dest) + + $stderr.puts "Copying #{fromfile} ..." if VERBOSE + File.copy(fromfile, tofile) unless File.file?(tofile) + end +end + rubyw = false rubyw = false if (ARGV.include?("-d") or ARGV.include?("--ruby")) rubyw = true if (ARGV.include?("-w") or ARGV.include?("--rubyw")) site = false site = true if (ARGV.include?("-s") or ARGV.include?("--site")) +STRIP = (not (ARGV.include?("-ns") or ARGV.include?("--nostrip"))) +VERBOSE = (ARGV.include?("-v") or ARGV.include?("--verbose")) +QUIET = ((ARGV.include?("-q") or ARGV.include?("--quiet")) and not VERBOSE) + ARGV.delete_if{|s| s =~ /^-/} -exefile = (ARGV.shift or (windows? ? "allinoneruby.exe" : "allinoneruby.bin")) +exefile = ARGV.shift +exefile = (exefile or "allinoneruby.exe") if windows? or cygwin? +exefile = (exefile or "allinoneruby_linux") if linux? +exefile = (exefile or "allinoneruby_darwin") if darwin? bindir1 = Config::CONFIG["bindir"] libdir1 = Config::CONFIG["libdir"] @@ -46,36 +68,19 @@ Dir.mkdir(bindir2) unless File.directory?(bindir2) Dir.mkdir(libdir2) unless File.directory?(libdir2) -if linux? +if linux? or darwin? rubyexe = "#{bindir1}/ruby" else rubyexe = "#{bindir1}/ruby.exe" rubywexe = "#{bindir1}/rubyw.exe" end -if linux? - tocopy = ldds(rubyexe) - tocopy << rubyexe if File.file?(rubyexe) -else - tocopy = dlls(rubyexe) - tocopy << rubyexe if File.file?(rubyexe) - tocopy << rubywexe if File.file?(rubywexe) -end - -tocopy.each do |s1| - file = File.basename(s1) - s2 = File.expand_path(file, bindir2) - - $stderr.puts "Copying #{s1} ..." - File.copy(s1, s2) unless File.file?(s2) -end - begin file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") s1 = rubylibdir1 s2 = File.expand_path(file, libdir2) - $stderr.puts "Copying #{s1}/ ..." + $stderr.puts "Copying #{s1}/ ..." if VERBOSE Dir.copy(s1, s2) unless File.directory?(s2) end @@ -84,68 +89,83 @@ s1 = sitelibdir1 s2 = File.expand_path(file, libdir2) - $stderr.puts "Copying #{s1}/ ..." + $stderr.puts "Copying #{s1}/ ..." if VERBOSE Dir.copy(s1, s2) unless File.directory?(s2) end -if linux? - tocopy = Dir.find(libdir2, /\.so$/).collect{|file| ldds(file)}.flatten.sort.uniq -else - tocopy = Dir.find(libdir2, /\.so$/).collect{|file| dlls(file, bindir1)}.flatten.sort.uniq -end +copyto(rubyexe, bindir2) if linux? or darwin? if File.file?(rubyexe) +copyto(ldds(rubyexe), bindir2) if linux? or darwin? + +copyto(rubyexe, bindir2) if windows? or cygwin? if File.file?(rubyexe) +copyto(rubywexe, bindir2) if windows? or cygwin? if File.file?(rubyexe) +copyto(dlls(rubyexe), bindir2) if windows? or cygwin? + +copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}, bindir2) if linux? or darwin? +copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| dlls(file, bindir1)}, bindir2) if windows? or cygwin? -tocopy.each do |s1| - file = File.basename(s1) - s2 = File.expand_path(file, bindir2) +if STRIP and (linux? or darwin?) + $stderr.puts "Stripping..." unless QUIET - $stderr.puts "Copying #{s1} ..." - File.copy(s1, s2) unless File.file?(s2) + system("cd #{bindir2} ; strip --strip-all * 2> /dev/null") + system("cd #{libdir2} ; strip --strip-all * 2> /dev/null") end +rubyexe = "ruby.exe" +rubyexe = "rubyw.exe" if rubyw +rubyexe = "ruby" if linux? +rubyexe = "ruby" if darwin? eeeexe = "eee.exe" -eeeexe = "eeew.exe" if rubyw -eeeexe = "eee.bin" if linux? +eeeexe = "eeew.exe" if rubyw +eeeexe = "eee_linux" if linux? +eeeexe = "eee_darwin" if darwin? appexe = exefile -$stderr.puts "Creating #{appexe} ..." +$stderr.puts "Creating #{appexe} ..." unless QUIET -if linux? +if linux? or darwin? File.open(tmplocation("eee.sh"), "w") do |f| f.puts "PDIR=$1;shift" f.puts "DIR=$(pwd)" f.puts "cd $PDIR" f.puts " chmod +x bin/ruby" f.puts " export PATH=$(pwd)/bin:$PATH" - f.puts " export LD_LIBRARY_PATH=$(pwd)/bin:LD_LIBRARY_PATH" + f.puts " export LD_LIBRARY_PATH=$(pwd)/bin:LD_LIBRARY_PATH" if linux? + f.puts " export DYLD_LIBRARY_PATH=$(pwd)/bin:DYLD_LIBRARY_PATH" if darwin? f.puts "cd $DIR" f.puts "$*" end 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" $:.each do |s| f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') end end -File.open(tmplocation("app.eee"), "w") do |f| - rubyexe = "ruby.exe" - rubyexe = "rubyw.exe" if rubyw - rubyexe = "ruby" if linux? +File.open(tmplocation("bootstrap.rb"), "w") do |f| + f.puts "ALLINONERUBY = '#{rubyexe}'" + f.puts "load($0 = ARGV.shift)" +end +File.open(tmplocation("empty.rb"), "w") do |f| +end + +File.open(tmplocation("app.eee"), "w") do |f| f.puts "r bin" f.puts "r lib" - f.puts "f eee.sh" if linux? + f.puts "f eee.sh" if linux? or darwin? f.puts "f eee.rb" - if linux? - f.puts "c source %tempdir%/eee.sh %tempdir% %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb %quotedparms%" + f.puts "f bootstrap.rb" + f.puts "f empty.rb" + if linux? or darwin? + f.puts "c echo source %tempdir%/eee.sh %tempdir% %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms% | sh -s" elsif cygwin? - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" else - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\eee.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\eee.rb -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb %quotedparms%" end end @@ -153,17 +173,31 @@ to = tmplocation(eeeexe) File.copy(from, to) unless from == to -File.chmod(0755, to) if linux? +File.chmod(0755, to) if linux? or darwin? tmplocation do - ENV["EEEEXE"] = eeeexe - ENV["EEEDIR"] = Dir.pwd + ENV["EEE_EXE"] = eeeexe + ENV["EEE_DIR"] = Dir.pwd + + eeebin1 = newlocation("eee.exe") + eeebin1 = newlocation("eee_linux") if linux? + eeebin1 = newlocation("eee_darwin") if darwin? + + eeebin2 = tmplocation("eee.exe") + eeebin2 = tmplocation("eee_linux") if linux? + eeebin2 = tmplocation("eee_darwin") if darwin? + + from = eeebin1 + to = eeebin2 + + File.copy(from, to) unless from == to + File.chmod(0755, to) if linux? or darwin? - system(backslashes("#{newlocation(linux? ? "eee.bin" : "eee")} app.eee #{appexe}")) + system(backslashes("#{eeebin2} app.eee #{appexe}")) end from = tmplocation(appexe) to = oldlocation(appexe) File.copy(from, to) unless from == to -File.chmod(0755, to) if linux? +#File.chmod(0755, to) if linux? or darwin? diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/README allinoneruby-0.2.1.tar.gz/allinoneruby/README --- allinoneruby-0.2.0.tar.gz/allinoneruby/README 2004-12-08 10:21:38.000000000 +0100 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/README 2005-03-24 10:13:09.000000000 +0100 @@ -2,9 +2,10 @@ The latter is just for playing with the internals. Both are available on the site. - Usage: ruby init.rb [-d|-w|--ruby|--rubyw] [-s|--site] + Usage: ruby init.rb [allinoneruby.exe] [-d|-w|--ruby|--rubyw] [-s|--site] [-ns|--nostrip] [-v|-q|--verbose|--quite] -On Linux, there's no difference between ruby and rubyw. +On Linux and Darwin, there's no difference between ruby and +rubyw. For more information, see http://www.erikveen.dds.nl/allinoneruby/index.html . diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/SUMMARY allinoneruby-0.2.1.tar.gz/allinoneruby/SUMMARY --- allinoneruby-0.2.0.tar.gz/allinoneruby/SUMMARY 2007-04-15 21:43:59.000000000 +0200 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/SUMMARY 2005-03-26 18:12:22.000000000 +0100 @@ -0,0 +1 @@ +A "Just-in-Time and Temporary Installation of Ruby" diff -ur allinoneruby-0.2.0.tar.gz/allinoneruby/VERSION allinoneruby-0.2.1.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.0.tar.gz/allinoneruby/VERSION 2007-04-15 21:43:59.000000000 +0200 +++ allinoneruby-0.2.1.tar.gz/allinoneruby/VERSION 2005-03-26 18:12:22.000000000 +0100 @@ -0,0 +1 @@ +0.2.1 Binary files allinoneruby-0.2.0.tar.gz/allinoneruby/eee.bin and allinoneruby-0.2.1.tar.gz/allinoneruby/eee.bin differ Binary files allinoneruby-0.2.0.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.1.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.0.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.1.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.0.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.1.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.1.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.2.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.1.tar.gz/allinoneruby/CHANGELOG 2007-04-15 21:44:01.000000000 +0200 +++ allinoneruby-0.2.2.tar.gz/allinoneruby/CHANGELOG 2005-05-22 18:50:55.000000000 +0200 @@ -0,0 +1,63 @@ +---------------------------------------------------------------- + +0.2.2 - 22.05.2005 + +* Fixed a bug concerning program arguments with spaces on + Linux/Darwin (was OK on Windows). + +* Added $stdin handling on Linux/Darwin (was OK on Windows). + +* Added handling of the -e argument, the one of Ruby itself. + +* Added a search for EEE. + +---------------------------------------------------------------- + +0.2.1 - 23.03.2005 + +* newlocation is an absolute path. + +* ENV["TEMP"] is an absolute path. + +* Added --verbose. + +* Added --quiet. + +* Added --nostrip. + +* Added ALLINONERUBY. + +* Fixed the non-SH-compatible shell (e.g. TCSH) bug. + +* Changed the name of the generated executable on Linux from + allinoneruby.bin to allinoneruby_linux. + +* Added (experimental) support for Mac OS X (Darwin). + +* Added support for .dll extensions and .o extensions. + +---------------------------------------------------------------- + +0.2.0 - 27.12.2004 + +* Added support for Linux. + +* Added compression. + +* Added sitelib support. + +* Added --eee-list. + +---------------------------------------------------------------- + +0.1.1 - 04.08.2004 + +* Added the handling of dll's, needed by the so's. + +---------------------------------------------------------------- + +0.1 - 30.07.2004 + +* First release. + +---------------------------------------------------------------- diff -ur allinoneruby-0.2.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.2.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.2.1.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-03-26 18:12:23.000000000 +0100 +++ allinoneruby-0.2.2.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-05-22 18:53:42.000000000 +0200 @@ -1,9 +1,10 @@ temp = File.expand_path((ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/")) dir = "#{temp}/oldandnewlocation.#{Process.pid}" -ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") -ENV["NEWDIR"] = File.expand_path(File.dirname($0)) unless ENV.include?("NEWDIR") -ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") +ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") +ENV["NEWDIR"] = File.expand_path(File.dirname($0)) unless ENV.include?("NEWDIR") +ENV["OWNDIR"] = File.expand_path(File.dirname((caller[-1] or $0).gsub(/:\d+$/, ""))) unless ENV.include?("OWNDIR") +ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") class Dir def self.rm_rf(entry) @@ -76,6 +77,27 @@ end begin + ownlocation +rescue NameError + def ownlocation(file="") + dir = ENV["OWNDIR"] + res = nil + + if block_given? + pdir = Dir.pwd + + Dir.chdir(dir) + res = yield + Dir.chdir(pdir) + else + res = File.expand_path(file, dir) unless file.nil? + end + + res + end +end + +begin tmplocation rescue NameError dir = ENV["TEMPDIR"] diff -ur allinoneruby-0.2.1.tar.gz/allinoneruby/init.rb allinoneruby-0.2.2.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.1.tar.gz/allinoneruby/init.rb 2005-03-23 22:49:16.000000000 +0100 +++ allinoneruby-0.2.2.tar.gz/allinoneruby/init.rb 2005-05-22 18:18:37.000000000 +0200 @@ -51,7 +51,7 @@ VERBOSE = (ARGV.include?("-v") or ARGV.include?("--verbose")) QUIET = ((ARGV.include?("-q") or ARGV.include?("--quiet")) and not VERBOSE) -ARGV.delete_if{|s| s =~ /^-/} +ARGV.delete_if{|s| s =~ /^-/} exefile = ARGV.shift exefile = (exefile or "allinoneruby.exe") if windows? or cygwin? @@ -75,6 +75,8 @@ rubywexe = "#{bindir1}/rubyw.exe" end +$stderr.puts "Copying files..." unless QUIET + begin file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") s1 = rubylibdir1 @@ -122,32 +124,30 @@ $stderr.puts "Creating #{appexe} ..." unless QUIET -if linux? or darwin? - File.open(tmplocation("eee.sh"), "w") do |f| - f.puts "PDIR=$1;shift" - f.puts "DIR=$(pwd)" - f.puts "cd $PDIR" - f.puts " chmod +x bin/ruby" - f.puts " export PATH=$(pwd)/bin:$PATH" - f.puts " export LD_LIBRARY_PATH=$(pwd)/bin:LD_LIBRARY_PATH" if linux? - f.puts " export DYLD_LIBRARY_PATH=$(pwd)/bin:DYLD_LIBRARY_PATH" if darwin? - f.puts "cd $DIR" - f.puts "$*" - end -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 "$:.clear" $:.each do |s| - f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') + f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') unless s.include?(newlocation) end end File.open(tmplocation("bootstrap.rb"), "w") do |f| f.puts "ALLINONERUBY = '#{rubyexe}'" - f.puts "load($0 = ARGV.shift)" + f.puts "script = ARGV.shift" + f.puts "if script == '-e'" + f.puts " command = ARGV.shift" + f.puts " eval(command)" + f.puts "else" + f.puts " if script.nil? or script == '-'" + f.puts " command = $stdin.read" + f.puts " eval(command)" + f.puts " else" + f.puts " $0 = script" + f.puts " load(script)" + f.puts " end" + f.puts "end" end File.open(tmplocation("empty.rb"), "w") do |f| @@ -156,12 +156,14 @@ File.open(tmplocation("app.eee"), "w") do |f| f.puts "r bin" f.puts "r lib" - f.puts "f eee.sh" if linux? or darwin? f.puts "f eee.rb" f.puts "f bootstrap.rb" f.puts "f empty.rb" - if linux? or darwin? - f.puts "c echo source %tempdir%/eee.sh %tempdir% %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms% | sh -s" + + if linux? + f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" + elsif darwin? + f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" elsif cygwin? f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" else @@ -170,6 +172,8 @@ end from = newlocation(eeeexe) +from = ownlocation(eeeexe) unless File.file?(from) +from = oldlocation(eeeexe) unless File.file?(from) to = tmplocation(eeeexe) File.copy(from, to) unless from == to @@ -183,6 +187,18 @@ eeebin1 = newlocation("eee_linux") if linux? eeebin1 = newlocation("eee_darwin") if darwin? + unless File.file?(eeebin1) + eeebin1 = ownlocation("eee.exe") + eeebin1 = ownlocation("eee_linux") if linux? + eeebin1 = ownlocation("eee_darwin") if darwin? + end + + unless File.file?(eeebin1) + eeebin1 = oldlocation("eee.exe") + eeebin1 = oldlocation("eee_linux") if linux? + eeebin1 = oldlocation("eee_darwin") if darwin? + end + eeebin2 = tmplocation("eee.exe") eeebin2 = tmplocation("eee_linux") if linux? eeebin2 = tmplocation("eee_darwin") if darwin? @@ -200,4 +216,3 @@ to = oldlocation(appexe) File.copy(from, to) unless from == to -#File.chmod(0755, to) if linux? or darwin? diff -ur allinoneruby-0.2.1.tar.gz/allinoneruby/README allinoneruby-0.2.2.tar.gz/allinoneruby/README --- allinoneruby-0.2.1.tar.gz/allinoneruby/README 2005-03-24 10:13:09.000000000 +0100 +++ allinoneruby-0.2.2.tar.gz/allinoneruby/README 2005-05-22 18:09:04.000000000 +0200 @@ -2,7 +2,11 @@ The latter is just for playing with the internals. Both are available on the site. - Usage: ruby init.rb [allinoneruby.exe] [-d|-w|--ruby|--rubyw] [-s|--site] [-ns|--nostrip] [-v|-q|--verbose|--quite] + Usage: ruby init.rb [allinoneruby.exe] + [-d|-w|--ruby|--rubyw] + [-s|--site] + [-ns|--nostrip] + [-v|-q|--verbose|--quite] On Linux and Darwin, there's no difference between ruby and rubyw. diff -ur allinoneruby-0.2.1.tar.gz/allinoneruby/VERSION allinoneruby-0.2.2.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.1.tar.gz/allinoneruby/VERSION 2005-03-26 18:12:22.000000000 +0100 +++ allinoneruby-0.2.2.tar.gz/allinoneruby/VERSION 2005-05-22 18:53:42.000000000 +0200 @@ -1 +1 @@ -0.2.1 +0.2.2 Binary files allinoneruby-0.2.1.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.2.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.1.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.2.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.1.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.2.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.2.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.3.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.2.tar.gz/allinoneruby/CHANGELOG 2005-05-22 18:50:55.000000000 +0200 +++ allinoneruby-0.2.3.tar.gz/allinoneruby/CHANGELOG 2005-06-03 13:18:59.000000000 +0200 @@ -1,5 +1,18 @@ ---------------------------------------------------------------- +0.2.3 - 03.06.2005 + +* Updated to FreePascal 1.9.8 on Windows, 2.0.0 on Linux and + 1.9.5 on Darwin. + +* The exit code of your script is returned to the calling + application/shell. + +* Made some information about the environment EEE sets up + available to the application, e.g. executable name. + +---------------------------------------------------------------- + 0.2.2 - 22.05.2005 * Fixed a bug concerning program arguments with spaces on diff -ur allinoneruby-0.2.2.tar.gz/allinoneruby/init.rb allinoneruby-0.2.3.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.2.tar.gz/allinoneruby/init.rb 2005-05-22 18:18:37.000000000 +0200 +++ allinoneruby-0.2.3.tar.gz/allinoneruby/init.rb 2005-06-03 13:17:15.000000000 +0200 @@ -124,16 +124,32 @@ $stderr.puts "Creating #{appexe} ..." unless QUIET -File.open(tmplocation("eee.rb"), "w") do |f| +File.open(tmplocation("bootstrap.rb"), "w") do |f| + f.puts "# Set up the environment" + 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" $:.each do |s| f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') unless s.include?(newlocation) end -end -File.open(tmplocation("bootstrap.rb"), "w") do |f| + f.puts "# Load eee.info" + + f.puts "eeedir = File.dirname(__FILE__)" + f.puts "eeeinfo = File.expand_path('eee.info', eeedir)" + f.puts "if File.file?(eeeinfo)" + f.puts " File.open(eeeinfo) do |f|" + f.puts " while line = f.gets" + f.puts " k, v = line.strip.split(/\s*=\s*/, 2)" + f.puts " k.gsub!(/^EEE_/, 'ALLINONERUBY_')" + f.puts " eval('%s=%s' % [k, v.inspect])" + f.puts " end" + f.puts " end" + f.puts "end" + + f.puts "# Start the application" + f.puts "ALLINONERUBY = '#{rubyexe}'" f.puts "script = ARGV.shift" f.puts "if script == '-e'" @@ -156,18 +172,18 @@ File.open(tmplocation("app.eee"), "w") do |f| f.puts "r bin" f.puts "r lib" - f.puts "f eee.rb" f.puts "f bootstrap.rb" f.puts "f empty.rb" + f.puts "i eee.info" if linux? - f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" + f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" elsif darwin? - f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/eee.rb -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" + f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" elsif cygwin? - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/eee.rb -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" else - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\eee.rb -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb %quotedparms%" end end diff -ur allinoneruby-0.2.2.tar.gz/allinoneruby/VERSION allinoneruby-0.2.3.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.2.tar.gz/allinoneruby/VERSION 2005-05-22 18:53:42.000000000 +0200 +++ allinoneruby-0.2.3.tar.gz/allinoneruby/VERSION 2005-06-03 13:31:02.000000000 +0200 @@ -1 +1 @@ -0.2.2 +0.2.3 Binary files allinoneruby-0.2.2.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.3.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.2.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.3.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.2.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.3.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.3.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.4.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.3.tar.gz/allinoneruby/CHANGELOG 2005-06-03 13:18:59.000000000 +0200 +++ allinoneruby-0.2.4.tar.gz/allinoneruby/CHANGELOG 2005-06-14 21:41:39.000000000 +0200 @@ -1,5 +1,11 @@ ---------------------------------------------------------------- +0.2.4 - 14.06.2005 + +* Fixed a bug concerning spaces in %TEMP%. + +---------------------------------------------------------------- + 0.2.3 - 03.06.2005 * Updated to FreePascal 1.9.8 on Windows, 2.0.0 on Linux and diff -ur allinoneruby-0.2.3.tar.gz/allinoneruby/VERSION allinoneruby-0.2.4.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.3.tar.gz/allinoneruby/VERSION 2005-06-03 13:31:02.000000000 +0200 +++ allinoneruby-0.2.4.tar.gz/allinoneruby/VERSION 2005-06-14 21:42:38.000000000 +0200 @@ -1 +1 @@ -0.2.3 +0.2.4 Binary files allinoneruby-0.2.3.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.4.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.3.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.4.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.3.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.4.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.4.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.5.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.4.tar.gz/allinoneruby/CHANGELOG 2005-06-14 21:41:39.000000000 +0200 +++ allinoneruby-0.2.5.tar.gz/allinoneruby/CHANGELOG 2005-06-21 00:02:16.000000000 +0200 @@ -1,5 +1,11 @@ ---------------------------------------------------------------- +0.2.5 - 21.06.2005 + +* Fixed a bug concerning --site handling. + +---------------------------------------------------------------- + 0.2.4 - 14.06.2005 * Fixed a bug concerning spaces in %TEMP%. diff -ur allinoneruby-0.2.4.tar.gz/allinoneruby/init.rb allinoneruby-0.2.5.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.4.tar.gz/allinoneruby/init.rb 2005-06-03 13:17:15.000000000 +0200 +++ allinoneruby-0.2.5.tar.gz/allinoneruby/init.rb 2005-06-18 12:17:20.000000000 +0200 @@ -37,6 +37,7 @@ tofile = File.expand_path(File.basename(fromfile), dest) $stderr.puts "Copying #{fromfile} ..." if VERBOSE + File.copy(fromfile, tofile) unless File.file?(tofile) end end @@ -60,10 +61,11 @@ bindir1 = Config::CONFIG["bindir"] libdir1 = Config::CONFIG["libdir"] +sitedir1 = Config::CONFIG["sitedir"] bindir2 = tmplocation("bin/") libdir2 = tmplocation("lib/") -rubylibdir1 = Config::CONFIG["rubylibdir"] -sitelibdir1 = Config::CONFIG["sitelibdir"] + +numberoflibs = 0 Dir.mkdir(bindir2) unless File.directory?(bindir2) Dir.mkdir(libdir2) unless File.directory?(libdir2) @@ -78,21 +80,17 @@ $stderr.puts "Copying files..." unless QUIET begin - file = rubylibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") - s1 = rubylibdir1 - s2 = File.expand_path(file, libdir2) - - $stderr.puts "Copying #{s1}/ ..." if VERBOSE - Dir.copy(s1, s2) unless File.directory?(s2) -end + $:.each do |dir| + if (dir.include?(libdir1) and not dir.include?(sitedir1)) or (site and dir.include?(sitedir1)) + numberoflibs += 1 + s1 = dir + s2 = File.expand_path("lib#{numberoflibs}", libdir2) -if site - file = sitelibdir1[libdir1.length..-1].gsub(/^[\/\\]*/, "") - s1 = sitelibdir1 - s2 = File.expand_path(file, libdir2) + $stderr.puts "Copying #{s1}/ ..." if VERBOSE - $stderr.puts "Copying #{s1}/ ..." if VERBOSE - Dir.copy(s1, s2) unless File.directory?(s2) + Dir.copy(s1, s2) unless File.directory?(s2) + end + end end copyto(rubyexe, bindir2) if linux? or darwin? if File.file?(rubyexe) @@ -130,9 +128,11 @@ 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" - $:.each do |s| - f.puts "$: << \"%s\"" % s.sub(libdir1, '#{lib}') unless s.include?(newlocation) + + numberoflibs.times do |n| + f.puts "$: << lib + '/lib%s'" % [n+1] end + f.puts "$: << '.'" f.puts "# Load eee.info" diff -ur allinoneruby-0.2.4.tar.gz/allinoneruby/VERSION allinoneruby-0.2.5.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.4.tar.gz/allinoneruby/VERSION 2005-06-14 21:42:38.000000000 +0200 +++ allinoneruby-0.2.5.tar.gz/allinoneruby/VERSION 2005-06-21 00:02:54.000000000 +0200 @@ -1 +1 @@ -0.2.4 +0.2.5 diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.6.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.5.tar.gz/allinoneruby/CHANGELOG 2005-06-21 00:02:16.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/CHANGELOG 2005-08-06 13:00:21.000000000 +0200 @@ -1,5 +1,11 @@ ---------------------------------------------------------------- +0.2.6 - 06.08.2005 + +* Updated with to the last EEE (from RubyScript2Exe). + +---------------------------------------------------------------- + 0.2.5 - 21.06.2005 * Fixed a bug concerning --site handling. diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.6.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.2.5.tar.gz/allinoneruby/ev/ftools.rb 2005-06-21 00:02:54.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/ev/ftools.rb 2005-08-06 13:02:00.000000000 +0200 @@ -84,7 +84,7 @@ res += [entry] if mask.nil? or entry =~ mask end - res + res.sort end end diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.6.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.2.5.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-06-21 00:02:54.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-08-06 13:02:00.000000000 +0200 @@ -3,7 +3,7 @@ ENV["OLDDIR"] = Dir.pwd unless ENV.include?("OLDDIR") ENV["NEWDIR"] = File.expand_path(File.dirname($0)) unless ENV.include?("NEWDIR") -ENV["OWNDIR"] = File.expand_path(File.dirname((caller[-1] or $0).gsub(/:\d+$/, ""))) unless ENV.include?("OWNDIR") +ENV["APPDIR"] = File.expand_path(File.dirname((caller[-1] or $0).gsub(/:\d+$/, ""))) unless ENV.include?("APPDIR") ENV["TEMPDIR"] = dir unless ENV.include?("TEMPDIR") class Dir @@ -77,10 +77,10 @@ end begin - ownlocation + applocation rescue NameError - def ownlocation(file="") - dir = ENV["OWNDIR"] + def applocation(file="") + dir = ENV["APPDIR"] res = nil if block_given? diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/init.rb allinoneruby-0.2.6.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.5.tar.gz/allinoneruby/init.rb 2005-06-18 12:17:20.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/init.rb 2005-06-21 21:38:34.000000000 +0200 @@ -188,7 +188,7 @@ end from = newlocation(eeeexe) -from = ownlocation(eeeexe) unless File.file?(from) +from = applocation(eeeexe) unless File.file?(from) from = oldlocation(eeeexe) unless File.file?(from) to = tmplocation(eeeexe) @@ -204,9 +204,9 @@ eeebin1 = newlocation("eee_darwin") if darwin? unless File.file?(eeebin1) - eeebin1 = ownlocation("eee.exe") - eeebin1 = ownlocation("eee_linux") if linux? - eeebin1 = ownlocation("eee_darwin") if darwin? + eeebin1 = applocation("eee.exe") + eeebin1 = applocation("eee_linux") if linux? + eeebin1 = applocation("eee_darwin") if darwin? end unless File.file?(eeebin1) diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/README allinoneruby-0.2.6.tar.gz/allinoneruby/README --- allinoneruby-0.2.5.tar.gz/allinoneruby/README 2005-05-22 18:09:04.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/README 2005-08-06 09:07:21.000000000 +0200 @@ -1,15 +1,25 @@ -The best way to use AllInOneRuby is the RB, not this TAR.GZ. -The latter is just for playing with the internals. Both are -available on the site. +---------------------------------------------------------------- - Usage: ruby init.rb [allinoneruby.exe] - [-d|-w|--ruby|--rubyw] - [-s|--site] - [-ns|--nostrip] - [-v|-q|--verbose|--quite] +As you know, Ruby has to be installed, either by unzipping a +ZIP-file, or by running an installer. Only then, you can run a +script. Well, not anymore! -On Linux and Darwin, there's no difference between ruby and -rubyw. +AllInOneRuby creates a compressed executable for Windows, Linux +or Mac OS X (Darwin) that includes both the Ruby interpreter +and the runtime libraries. Why? Because it's sometimes not +easy, or possible, or desirable, or allowed to do a complete +Ruby installation. That's where AllInOneRuby comes in. I always +have a USB-memory stick with AllInOneRuby in my pocket. + +A "just-in-time and temporary installation of Ruby"... For more information, see http://www.erikveen.dds.nl/allinoneruby/index.html . + +---------------------------------------------------------------- + +The best way to use Tar2RubyScript is the RB, not this TAR.GZ. +The latter is just for playing with the internals. Both are +available on the site. + +---------------------------------------------------------------- diff -ur allinoneruby-0.2.5.tar.gz/allinoneruby/VERSION allinoneruby-0.2.6.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.5.tar.gz/allinoneruby/VERSION 2005-06-21 00:02:54.000000000 +0200 +++ allinoneruby-0.2.6.tar.gz/allinoneruby/VERSION 2005-08-06 13:02:00.000000000 +0200 @@ -1 +1 @@ -0.2.5 +0.2.6 Binary files allinoneruby-0.2.5.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.6.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.5.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.6.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.5.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.6.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.6.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.7.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.6.tar.gz/allinoneruby/CHANGELOG 2005-08-06 13:00:21.000000000 +0200 +++ allinoneruby-0.2.7.tar.gz/allinoneruby/CHANGELOG 2005-09-30 00:19:59.000000000 +0200 @@ -1,8 +1,14 @@ ---------------------------------------------------------------- +0.2.7 - 29.09.2005 + +* Made the common test if __file__ == $0 work. + +---------------------------------------------------------------- + 0.2.6 - 06.08.2005 -* Updated with to the last EEE (from RubyScript2Exe). +* Updated to the last EEE (from RubyScript2Exe). ---------------------------------------------------------------- diff -ur allinoneruby-0.2.6.tar.gz/allinoneruby/init.rb allinoneruby-0.2.7.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.6.tar.gz/allinoneruby/init.rb 2005-06-21 21:38:34.000000000 +0200 +++ allinoneruby-0.2.7.tar.gz/allinoneruby/init.rb 2005-09-28 00:31:37.000000000 +0200 @@ -160,7 +160,8 @@ f.puts " command = $stdin.read" f.puts " eval(command)" f.puts " else" - f.puts " $0 = script" + f.puts " script = File.expand_path(script)" + f.puts " $0.replace(script)" f.puts " load(script)" f.puts " end" f.puts "end" diff -ur allinoneruby-0.2.6.tar.gz/allinoneruby/VERSION allinoneruby-0.2.7.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.6.tar.gz/allinoneruby/VERSION 2005-08-06 13:02:00.000000000 +0200 +++ allinoneruby-0.2.7.tar.gz/allinoneruby/VERSION 2005-09-30 00:20:47.000000000 +0200 @@ -1 +1 @@ -0.2.6 +0.2.7 diff -ur allinoneruby-0.2.7.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.8.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.7.tar.gz/allinoneruby/CHANGELOG 2005-09-30 00:19:59.000000000 +0200 +++ allinoneruby-0.2.8.tar.gz/allinoneruby/CHANGELOG 2005-12-03 15:17:13.000000000 +0100 @@ -1,5 +1,11 @@ ---------------------------------------------------------------- +0.2.8 - 03.12.2005 + +* Fixed a bug concerning multiline parameters. + +---------------------------------------------------------------- + 0.2.7 - 29.09.2005 * Made the common test if __file__ == $0 work. diff -ur allinoneruby-0.2.7.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.2.8.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.2.7.tar.gz/allinoneruby/ev/dependencies.rb 2005-09-30 00:20:47.000000000 +0200 +++ allinoneruby-0.2.8.tar.gz/allinoneruby/ev/dependencies.rb 2005-12-03 15:17:55.000000000 +0100 @@ -52,8 +52,8 @@ libs = `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]} if linux? libs = `otool -L #{tempfile}`.split(/\r*\n/)[1..-1].collect{|line| line.split(/\s+/)[1]} if darwin? - libs.each do |lib| - if not lib.nil? and File.file?(lib) and not res.include?(lib) + libs.compact.each do |lib| + if File.file?(lib) and not res.include?(lib) todo << lib res << lib end diff -ur allinoneruby-0.2.7.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.8.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.2.7.tar.gz/allinoneruby/ev/ftools.rb 2005-09-30 00:20:47.000000000 +0200 +++ allinoneruby-0.2.8.tar.gz/allinoneruby/ev/ftools.rb 2005-12-03 15:17:55.000000000 +0100 @@ -160,7 +160,7 @@ ENV["PATH"].split(/#{sep}/).reverse.each do |d| if File.directory?(d) Dir.new(d).each do |e| - if e.downcase == file.downcase + if (linux? and e == file) or (windows? and e.downcase == file.downcase) res = File.expand_path(e, d) throw :stop end diff -ur allinoneruby-0.2.7.tar.gz/allinoneruby/init.rb allinoneruby-0.2.8.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.7.tar.gz/allinoneruby/init.rb 2005-09-28 00:31:37.000000000 +0200 +++ allinoneruby-0.2.8.tar.gz/allinoneruby/init.rb 2005-12-03 15:15:22.000000000 +0100 @@ -136,15 +136,21 @@ f.puts "# Load eee.info" - f.puts "eeedir = File.dirname(__FILE__)" - f.puts "eeeinfo = File.expand_path('eee.info', eeedir)" + f.puts "eeedir = File.dirname(__FILE__)" + f.puts "eeeinfo = File.expand_path('eee.info', eeedir)" f.puts "if File.file?(eeeinfo)" - f.puts " File.open(eeeinfo) do |f|" - f.puts " while line = f.gets" - f.puts " k, v = line.strip.split(/\s*=\s*/, 2)" - f.puts " k.gsub!(/^EEE_/, 'ALLINONERUBY_')" - f.puts " eval('%s=%s' % [k, v.inspect])" - f.puts " end" + f.puts " lines = File.open(eeeinfo){|f| f.readlines}" + f.puts " badline = lines.find{|line| line !~ /^EEE_/}" + f.puts " while badline" + f.puts " pos = lines.index(badline)" + f.puts " raise 'Found badline at position 0.' if pos == 0" + f.puts " lines[pos-1..pos] = lines[pos-1] + lines[pos]" + f.puts " badline = lines.find{|line| line !~ /^EEE_/}" + f.puts " end" + f.puts " lines.each do |line|" + f.puts " k, v = line.strip.split(/\s*=\s*/, 2)" + f.puts " k.gsub!(/^EEE_/, 'ALLINONERUBY_')" + f.puts " eval('%s=%s' % [k, v.inspect])" f.puts " end" f.puts "end" diff -ur allinoneruby-0.2.7.tar.gz/allinoneruby/VERSION allinoneruby-0.2.8.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.7.tar.gz/allinoneruby/VERSION 2005-09-30 00:20:47.000000000 +0200 +++ allinoneruby-0.2.8.tar.gz/allinoneruby/VERSION 2005-12-03 15:17:55.000000000 +0100 @@ -1 +1 @@ -0.2.7 +0.2.8 diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.9.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.8.tar.gz/allinoneruby/CHANGELOG 2005-12-03 15:17:13.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/CHANGELOG 2006-03-08 17:56:09.000000000 +0100 @@ -1,5 +1,16 @@ ---------------------------------------------------------------- +0.2.9 - 08.03.2006 + +* Fixed a bug concerning parameters with quotes and other + escapable characters. + +* Fixed a bug concerning spaced parameters on Linux and Darwin. + +* AllInOneRuby and RubyScript2Exe now work together. + +---------------------------------------------------------------- + 0.2.8 - 03.12.2005 * Fixed a bug concerning multiline parameters. diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.2.9.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.2.8.tar.gz/allinoneruby/ev/dependencies.rb 2005-12-03 15:17:55.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/ev/dependencies.rb 2006-03-08 18:28:57.000000000 +0100 @@ -1,27 +1,47 @@ -def dlls(file, path=File.dirname(file)) +def dlls(file) - # Only the dependencies in the same directory as the executable or the given directory. + # Only the dependencies in the same directory as the executable or any non-Windows directory in %PATH%. todo = [] res = [] todo << File.expand_path(file) + paden = ENV["PATH"].split(/;/) + paden = ENV["PATH"].split(/:/) if paden.length == 1 + + paden << File.dirname(file) + + windir1 = (ENV["WINDIR"] || "").gsub(/\\/, "/").downcase + drive = windir1.scan(/^(.):/).shift.shift + windir2 = windir1.sub(/^#{drive}:/, "/cygdrive/#{drive.downcase}") + + paden = paden.collect{|pad| pad.gsub(/\\/, "/").downcase} + paden = paden.select{|pad| pad.downcase} + paden = paden.reject{|pad| pad =~ /^#{windir1}/} + paden = paden.reject{|pad| pad =~ /^#{windir2}/} + while todo.length > 0 todo2 = todo todo = [] todo2.each do |file| File.open(file, "rb") do |f| - strings = f.read.scan(/[\w\-\.]+/) # Hack ??? - strings.delete_if{|s| s !~ /\.(so|o|dll)$/i} - - strings.each do |lib| - lib = File.expand_path(lib, path) - - if not lib.nil? and File.file?(lib) and not res.include?(lib) - todo << lib - res << lib + while (line = f.gets) + strings = line.scan(/[\w\-\.]+/) # Hack ??? + strings = strings.reject{|s| s !~ /\.(so|o|dll)$/i} + + strings.each do |lib| + pad = paden.find{|pad| File.file?(File.expand_path(lib, pad))} + + unless pad.nil? + lib = File.expand_path(lib, pad) + + if File.file?(lib) and not res.include?(lib) + todo << lib + res << lib + end + end end end end @@ -70,7 +90,7 @@ lsb_ia32 = ["libm.so.6", "libdl.so.2", "libcrypt.so.1", "libc.so.6", "libpthread.so.0", "ld-lsb.so.1"] lsb = lsb_common + lsb_ia32 - res.delete_if{|s| lsb.include?(File.basename(s))} if notthedefaults + res.reject!{|s| lsb.include?(File.basename(s))} if notthedefaults res end diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.9.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.2.8.tar.gz/allinoneruby/ev/ftools.rb 2005-12-03 15:17:55.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/ev/ftools.rb 2006-03-08 18:28:57.000000000 +0100 @@ -9,8 +9,10 @@ File.mkpath(todir) Dir.chdir(from) - Dir.new(".").each do |e| - Dir.copy(e, todir+"/"+e) if not [".", ".."].include?(e) + Dir.open(".") do |dir| + dir.each do |e| + Dir.copy(e, todir+"/"+e) if not [".", ".."].include?(e) + end end Dir.chdir(pdir) else @@ -28,14 +30,19 @@ end def self.rm_rf(entry) - File.chmod(0755, entry) + begin + File.chmod(0755, entry) + rescue + end if File.ftype(entry) == "directory" pdir = Dir.pwd Dir.chdir(entry) - Dir.new(".").each do |e| - Dir.rm_rf(e) if not [".", ".."].include?(e) + Dir.open(".") do |dir| + dir.each do |e| + Dir.rm_rf(e) if not [".", ".."].include?(e) + end end Dir.chdir(pdir) @@ -71,8 +78,10 @@ Dir.chdir(entry) begin - Dir.new(".").each do |e| - res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + Dir.open(".") do |dir| + dir.each do |e| + res += Dir.find(e, mask).collect{|e| entry+"/"+e} unless [".", ".."].include?(e) + end end ensure Dir.chdir(pdir) @@ -159,10 +168,12 @@ catch :stop do ENV["PATH"].split(/#{sep}/).reverse.each do |d| if File.directory?(d) - Dir.new(d).each do |e| - if (linux? and e == file) or (windows? and e.downcase == file.downcase) - res = File.expand_path(e, d) - throw :stop + Dir.open(d) do |dir| + dir.each do |e| + if (linux? and e == file) or (windows? and e.downcase == file.downcase) + res = File.expand_path(e, d) + throw :stop + end end end end @@ -171,4 +182,35 @@ res end + + def self.same_content?(file1, file2, blocksize=4096) + res = false + + if File.file?(file1) and File.file?(file2) + res = true + + data1 = nil + data2 = nil + + File.open(file1, "rb") do |f1| + File.open(file2, "rb") do |f2| + catch :not_the_same do + while (data1 = f1.read(blocksize)) + data2 = f2.read(blocksize) + + unless data1 == data2 + res = false + + throw :not_the_same + end + end + + res = false if f2.read(blocksize) + end + end + end + end + + res + end end diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.9.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.2.8.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2005-12-03 15:17:55.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2006-03-08 18:28:57.000000000 +0100 @@ -14,8 +14,10 @@ pdir = Dir.pwd Dir.chdir(entry) - Dir.new(".").each do |e| - Dir.rm_rf(e) if not [".", ".."].include?(e) + Dir.open(".") do |dir| + dir.each do |e| + Dir.rm_rf(e) if not [".", ".."].include?(e) + end end Dir.chdir(pdir) diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/init.rb allinoneruby-0.2.9.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.8.tar.gz/allinoneruby/init.rb 2005-12-03 15:15:22.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/init.rb 2006-02-04 01:22:51.000000000 +0100 @@ -100,8 +100,8 @@ copyto(rubywexe, bindir2) if windows? or cygwin? if File.file?(rubyexe) copyto(dlls(rubyexe), bindir2) if windows? or cygwin? -copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}, bindir2) if linux? or darwin? -copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| dlls(file, bindir1)}, bindir2) if windows? or cygwin? +copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| ldds(file)}, bindir2) if linux? or darwin? +copyto(Dir.find(libdir2, /\.(so|o|dll)$/i).collect{|file| dlls(file)}, bindir2) if windows? or cygwin? if STRIP and (linux? or darwin?) $stderr.puts "Stripping..." unless QUIET @@ -152,8 +152,19 @@ f.puts " k.gsub!(/^EEE_/, 'ALLINONERUBY_')" f.puts " eval('%s=%s' % [k, v.inspect])" f.puts " end" + f.puts " ARGV.concat(ALLINONERUBY_PARMSLIST.split(/\000/))" f.puts "end" + f.puts "# Fake Config" + + #f.puts "module Config" + #f.puts " DESTDIR = ALLINONERUBY_TEMPDIR" + #f.puts "end" + + f.puts "require 'rbconfig'" + f.puts "Config::CONFIG['bindir'] = File.join(ALLINONERUBY_TEMPDIR, 'bin')" + f.puts "Config::CONFIG['libdir'] = File.join(ALLINONERUBY_TEMPDIR, 'lib')" + f.puts "# Start the application" f.puts "ALLINONERUBY = '#{rubyexe}'" @@ -184,13 +195,13 @@ f.puts "i eee.info" if linux? - f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" + f.puts "c PATH=%tempdir%/bin:$PATH ; export LD_LIBRARY_PATH=%tempdir%/bin:$LD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb" elsif darwin? - f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T %tempdir%/empty.rb %quotedparms%" + f.puts "c PATH=%tempdir%/bin:$PATH ; export DYLD_LIBRARY_PATH=%tempdir%/bin:$DYLD_LIBRARY_PATH ; chmod +x %tempdir%/bin/* ; %tempdir%/bin/#{rubyexe} -r %tempdir%/bootstrap.rb -T1 %tempdir%/empty.rb" elsif cygwin? - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir1%/bootstrap.rb -T1 %tempdir1%/empty.rb" else - f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb %quotedparms%" + f.puts "c %tempdir%\\bin\\#{rubyexe} -r %tempdir%\\bootstrap.rb -T1 %tempdir%\\empty.rb" end end diff -ur allinoneruby-0.2.8.tar.gz/allinoneruby/VERSION allinoneruby-0.2.9.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.8.tar.gz/allinoneruby/VERSION 2005-12-03 15:17:55.000000000 +0100 +++ allinoneruby-0.2.9.tar.gz/allinoneruby/VERSION 2006-03-08 18:28:57.000000000 +0100 @@ -1 +1 @@ -0.2.8 +0.2.9 Binary files allinoneruby-0.2.8.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.9.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.8.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.9.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.8.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.9.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.9.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.10.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.9.tar.gz/allinoneruby/CHANGELOG 2006-03-08 17:56:09.000000000 +0100 +++ allinoneruby-0.2.10.tar.gz/allinoneruby/CHANGELOG 2006-07-29 20:29:06.000000000 +0200 @@ -1,5 +1,12 @@ ---------------------------------------------------------------- +0.2.10 - 29.07.2006 + +* This change is just technical, to stay compatible with + RubyScript2Exe. + +---------------------------------------------------------------- + 0.2.9 - 08.03.2006 * Fixed a bug concerning parameters with quotes and other diff -ur allinoneruby-0.2.9.tar.gz/allinoneruby/init.rb allinoneruby-0.2.10.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.9.tar.gz/allinoneruby/init.rb 2006-02-04 01:22:51.000000000 +0100 +++ allinoneruby-0.2.10.tar.gz/allinoneruby/init.rb 2006-07-29 13:58:44.000000000 +0200 @@ -125,6 +125,9 @@ File.open(tmplocation("bootstrap.rb"), "w") do |f| f.puts "# Set up the environment" + f.puts "module ALLINONERUBY" + f.puts "end" + 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" @@ -149,25 +152,28 @@ f.puts " end" f.puts " lines.each do |line|" f.puts " k, v = line.strip.split(/\s*=\s*/, 2)" - f.puts " k.gsub!(/^EEE_/, 'ALLINONERUBY_')" - f.puts " eval('%s=%s' % [k, v.inspect])" + f.puts " k.gsub!(/^EEE_/, '')" + f.puts " ALLINONERUBY.module_eval{const_set(k, v)}" f.puts " end" - f.puts " ARGV.concat(ALLINONERUBY_PARMSLIST.split(/\000/))" + f.puts " ARGV.concat(ALLINONERUBY::PARMSLIST.split(/\000/))" f.puts "end" f.puts "# Fake Config" #f.puts "module Config" - #f.puts " DESTDIR = ALLINONERUBY_TEMPDIR" + #f.puts " DESTDIR = ALLINONERUBY::TEMPDIR" #f.puts "end" f.puts "require 'rbconfig'" - f.puts "Config::CONFIG['bindir'] = File.join(ALLINONERUBY_TEMPDIR, 'bin')" - f.puts "Config::CONFIG['libdir'] = File.join(ALLINONERUBY_TEMPDIR, 'lib')" + f.puts "Config::CONFIG['bindir'] = File.join(ALLINONERUBY::TEMPDIR, 'bin')" + f.puts "Config::CONFIG['libdir'] = File.join(ALLINONERUBY::TEMPDIR, 'lib')" + + f.puts "module ALLINONERUBY" + f.puts " RUBYEXE = '#{rubyexe}'" + f.puts "end" f.puts "# Start the application" - f.puts "ALLINONERUBY = '#{rubyexe}'" f.puts "script = ARGV.shift" f.puts "if script == '-e'" f.puts " command = ARGV.shift" diff -ur allinoneruby-0.2.9.tar.gz/allinoneruby/VERSION allinoneruby-0.2.10.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.9.tar.gz/allinoneruby/VERSION 2006-03-08 18:28:57.000000000 +0100 +++ allinoneruby-0.2.10.tar.gz/allinoneruby/VERSION 2006-07-29 20:29:28.000000000 +0200 @@ -1 +1 @@ -0.2.9 +0.2.10 Binary files allinoneruby-0.2.9.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.10.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.9.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.10.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.9.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.10.tar.gz/allinoneruby/eeew.exe differ diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/CHANGELOG allinoneruby-0.2.11.tar.gz/allinoneruby/CHANGELOG --- allinoneruby-0.2.10.tar.gz/allinoneruby/CHANGELOG 2006-07-29 20:29:06.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/CHANGELOG 2007-04-15 21:40:15.000000000 +0200 @@ -1,5 +1,14 @@ ---------------------------------------------------------------- +0.2.11 - 15.04.2007 + +* Replaced %TEMP% by %HOME%/eee, or %USERPROFILE%/eee, or + %TEMP%/eee, or c:/eee (on Windows). Replaced /tmp by + $HOME/.eee, or /tmp/.eee (on Linux/Darwin). This is to avoid + "Insecure world writable dir". + +---------------------------------------------------------------- + 0.2.10 - 29.07.2006 * This change is just technical, to stay compatible with diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/ev/dependencies.rb allinoneruby-0.2.11.tar.gz/allinoneruby/ev/dependencies.rb --- allinoneruby-0.2.10.tar.gz/allinoneruby/ev/dependencies.rb 2006-07-29 20:29:29.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/ev/dependencies.rb 2007-04-15 21:43:49.000000000 +0200 @@ -12,7 +12,7 @@ paden << File.dirname(file) - windir1 = (ENV["WINDIR"] || "").gsub(/\\/, "/").downcase + windir1 = (ENV["SYSTEMROOT"] || ENV["WINDIR"] || "").gsub(/\\/, "/").downcase drive = windir1.scan(/^(.):/).shift.shift windir2 = windir1.sub(/^#{drive}:/, "/cygdrive/#{drive.downcase}") @@ -72,6 +72,8 @@ libs = `ldd #{tempfile}`.split(/\r*\n/).collect{|line| line.split(/\s+/)[3]} if linux? libs = `otool -L #{tempfile}`.split(/\r*\n/)[1..-1].collect{|line| line.split(/\s+/)[1]} if darwin? + libs ||= [] + libs.compact.each do |lib| if File.file?(lib) and not res.include?(lib) todo << lib diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/ev/ftools.rb allinoneruby-0.2.11.tar.gz/allinoneruby/ev/ftools.rb --- allinoneruby-0.2.10.tar.gz/allinoneruby/ev/ftools.rb 2006-07-29 20:29:29.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/ev/ftools.rb 2007-04-15 21:43:49.000000000 +0200 @@ -62,6 +62,7 @@ def self.find(entry=nil, mask=nil) entry = "." if entry.nil? + entry = entry.to_s entry = entry.gsub(/[\/\\]*$/, "") unless entry.nil? @@ -95,58 +96,57 @@ res.sort end -end -class File - def self.rollbackup(file, mode=nil) - backupfile = file + ".RB.BACKUP" - controlfile = file + ".RB.CONTROL" - res = nil + def self.home(*args, &block) + dir = nil - File.touch(file) unless File.file?(file) + dir ||= ENV["HOME"] + dir ||= ENV["USERPROFILE"] + dir ||= "c:/" - # Rollback + handle_home_and_temp(dir, *args, &block) + end - if File.file?(backupfile) and File.file?(controlfile) - $stderr.puts "Restoring #{file}..." + def self.temp(*args, &block) + dir = nil - File.copy(backupfile, file) # Rollback from phase 3 - end + dir ||= ENV["TMPDIR"] + dir ||= ENV["TMP"] + dir ||= ENV["TEMP"] + dir ||= "/tmp" - # Reset + handle_home_and_temp(dir, *args, &block) + end - File.delete(backupfile) if File.file?(backupfile) # Reset from phase 2 or 3 - File.delete(controlfile) if File.file?(controlfile) # Reset from phase 3 or 4 + private - # Backup + def self.handle_home_and_temp(dir, *args, &block) + file = File.join(*args) + file = file.gsub(/\\/, "/") + file = file.gsub(/\/+/, "/") + file = file.gsub(/^\/+/, "") + file = file.gsub(/\/+$/, "") + + dir = dir.gsub(/\\/, "/") + dir = dir.gsub(/\/+/, "/") + dir = dir.gsub(/\/+$/, "") + dir = File.expand_path(file, dir) - File.copy(file, backupfile) # Enter phase 2 - File.touch(controlfile) # Enter phase 3 + res = dir - # The real thing + if block + pdir = Dir.pwd - if block_given? - if mode.nil? - res = yield - else - File.open(file, mode) do |f| - res = yield(f) - end - end + Dir.chdir(dir) # Ruby 1.6 doesn't handle Dir.chdir(&block). + res = block.call(res) + Dir.chdir(pdir) end - # Cleanup - - File.delete(backupfile) # Enter phase 4 - File.delete(controlfile) # Enter phase 5 - - # Return, like File.open - - res = File.open(file, (mode or "r")) unless block_given? - res end +end +class File def self.touch(file) if File.exists?(file) File.utime(Time.now, File.mtime(file), file) diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/ev/oldandnewlocation.rb allinoneruby-0.2.11.tar.gz/allinoneruby/ev/oldandnewlocation.rb --- allinoneruby-0.2.10.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2006-07-29 20:29:29.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/ev/oldandnewlocation.rb 2007-04-15 21:43:49.000000000 +0200 @@ -1,3 +1,5 @@ +require "rubyscript2exe" + temp = File.expand_path((ENV["TMPDIR"] or ENV["TMP"] or ENV["TEMP"] or "/tmp").gsub(/\\/, "/")) dir = "#{temp}/oldandnewlocation.#{Process.pid}" @@ -40,7 +42,7 @@ oldlocation rescue NameError def oldlocation(file="") - dir = ENV["OLDDIR"] + dir = (ENV["OLDDIR"] || RUBYSCRIPT2EXE.userdir) rescue "." res = nil if block_given? @@ -61,7 +63,7 @@ newlocation rescue NameError def newlocation(file="") - dir = ENV["NEWDIR"] + dir = (ENV["NEWDIR"] || RUBYSCRIPT2EXE.appdir) rescue "." res = nil if block_given? @@ -82,7 +84,7 @@ applocation rescue NameError def applocation(file="") - dir = ENV["APPDIR"] + dir = (ENV["APPDIR"] || RUBYSCRIPT2EXE.appdir) rescue "." res = nil if block_given? diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/init.rb allinoneruby-0.2.11.tar.gz/allinoneruby/init.rb --- allinoneruby-0.2.10.tar.gz/allinoneruby/init.rb 2006-07-29 13:58:44.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/init.rb 2006-07-31 18:49:55.000000000 +0200 @@ -4,8 +4,9 @@ require "ev/dependencies" require "ev/ftools" require "rbconfig" +require "rubyscript2exe" -exit if defined?(REQUIRE2LIB) +exit if RUBYSCRIPT2EXE.is_compiling? def backslashes(s) s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\") if windows? diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/rubyscript2exe.rb allinoneruby-0.2.11.tar.gz/allinoneruby/rubyscript2exe.rb --- allinoneruby-0.2.10.tar.gz/allinoneruby/rubyscript2exe.rb 2007-04-15 21:44:19.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/rubyscript2exe.rb 2007-04-15 21:43:49.000000000 +0200 @@ -0,0 +1,103 @@ +module RUBYSCRIPT2EXE + @@dlls = [] + @@bin = [] + @@lib = [] + @@tempdir = nil + @@tk = false + @@rubyw = false + @@strip = true + + USERDIR = (defined?(oldlocation) ? oldlocation : Dir.pwd) unless defined?(self.const_defined?(USERDIR)) + + def self.dlls ; @@dlls ; end + def self.dlls=(a) ; @@dlls = a ; end + + def self.bin ; @@bin ; end + def self.bin=(a) ; @@bin = a ; end + + def self.lib ; @@lib ; end + def self.lib=(a) ; @@lib = a ; end + + def self.tempdir ; @@tempdir ; end + def self.tempdir=(s) ; @@tempdir = s ; end + + def self.tk ; @@tk ; end + def self.tk=(b) ; @@tk = b ; end + + def self.rubyw ; @@rubyw ; end + def self.rubyw=(b) ; @@rubyw = b ; end + + def self.strip ; @@strip ; end + def self.strip=(b) ; @@strip = b ; end + + def self.appdir(file=nil, &block) + if is_compiled? and defined?(TEMPDIR) + use_given_dir(File.expand_path(File.join(TEMPDIR, "app")), file, &block) + else + use_given_dir(File.dirname(File.expand_path($0, USERDIR)), file, &block) + end + end + + def self.userdir(file=nil, &block) + use_given_dir(USERDIR, file, &block) + end + + def self.exedir(file=nil, &block) + if is_compiled? and defined?(APPEXE) + use_given_dir(File.dirname(APPEXE), file, &block) + else + use_given_dir(File.dirname(File.expand_path($0)), file, &block) + end + end + + def self.use_given_dir(dir, *file, &block) + if block + pdir = Dir.pwd + + Dir.chdir(dir) + res = block[] + Dir.chdir(pdir) + else + file = file.compact + res = File.expand_path(File.join(*file), dir) + end + + res + end + + class << self + private :use_given_dir + end + + def self.is_compiling? + defined?(REQUIRE2LIB) + end + + def self.is_compiled? + defined?(COMPILED) + end + + def self.executable + if is_compiled? and defined?(APPEXE) + APPEXE + else + File.expand_path($0) + end + end + + verbose = $VERBOSE + $VERBOSE = nil + s = ENV["PATH"].dup + $VERBOSE = verbose + if Dir.pwd[1..2] == ":/" + s << (";"+appdir.gsub(/\//, "\\")) + s << (";"+appdir("bin").gsub(/\//, "\\")) + else + s << (":"+appdir) + s << (":"+appdir("bin")) + end + ENV["PATH"] = s + + $: << appdir + $: << appdir("lib") +end diff -ur allinoneruby-0.2.10.tar.gz/allinoneruby/VERSION allinoneruby-0.2.11.tar.gz/allinoneruby/VERSION --- allinoneruby-0.2.10.tar.gz/allinoneruby/VERSION 2006-07-29 20:29:28.000000000 +0200 +++ allinoneruby-0.2.11.tar.gz/allinoneruby/VERSION 2007-04-15 21:43:49.000000000 +0200 @@ -1 +1 @@ -0.2.10 +0.2.11 Binary files allinoneruby-0.2.10.tar.gz/allinoneruby/eee.exe and allinoneruby-0.2.11.tar.gz/allinoneruby/eee.exe differ Binary files allinoneruby-0.2.10.tar.gz/allinoneruby/eee_linux and allinoneruby-0.2.11.tar.gz/allinoneruby/eee_linux differ Binary files allinoneruby-0.2.10.tar.gz/allinoneruby/eeew.exe and allinoneruby-0.2.11.tar.gz/allinoneruby/eeew.exe differ