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:21.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