diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/CHANGELOG rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/CHANGELOG --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/CHANGELOG 2006-06-28 17:17:28.000000000 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/CHANGELOG 2006-07-29 20:27:05.000000000 +0200 @@ -1,5 +1,25 @@ ---------------------------------------------------------------- +0.5.0 - 29.07.2006 + +* Added support for directories. + +* Introduced require "rubyscript2exe.rb". + +* Added a check for readability in EEE. + +* Replaced RUBYSCRIPT2EXE_* by RUBYSCRIPT.*= and + RUBYSCRIPT2EXE::* (see application.rb). + +* Added RUBYSCRIPT2EXE.appdir(item) and + RUBYSCRIPT2EXE.is_compil*?. + +* If you already used RubyScript2Exe before, please reread the + section "From Inside your Application", since it isn't 100% + backwards compatible. + +---------------------------------------------------------------- + 0.4.4 - 28.06.2006 * Fixed a bug concerning "ENV.delete(key)". diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.pas --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.pas 2006-06-28 17:18:44.000000000 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.pas 2006-07-29 20:28:12.000000000 +0200 @@ -812,6 +812,7 @@ infile : file of byte; outfile : file of byte; i : longint; + n : longint; begin @@ -837,9 +838,11 @@ for i := 1 to t.number do begin {$I-} - gzread(zfile, addr(h), sizeof(h)); if (ioresult <> 0) then error('Couldn''t read: "' + workfile + '"'); + n := gzread(zfile, addr(h), sizeof(h)); if (ioresult <> 0) then error('Couldn''t read: "' + workfile + '"'); {$I+} + if (n <> sizeof(h)) then error('Couldn''t read: "' + workfile + '"'); + klasse := h.klasse; tekst2 := h.tekst; diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/init.rb --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/init.rb 2006-06-28 09:57:40.000000000 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/init.rb 2006-07-29 18:39:59.000000000 +0200 @@ -1,7 +1,12 @@ +$".delete "rubyscript2exe.rb" +require "rubyscript2exe" + +if __FILE__ == $0 + $: << File.dirname(File.expand_path(__FILE__)) required = $" -required = required.reject{|a| File.dirname(a) == ALLINONERUBY_TEMPDIR} if defined?(ALLINONERUBY_TEMPDIR) +required = required.reject{|a| File.dirname(a) == ALLINONERUBY::TEMPDIR} if defined?(ALLINONERUBY::TEMPDIR) required = required.collect{|a| "-r '#{a}'"} require "ev/oldandnewlocation" @@ -9,7 +14,7 @@ require "ev/ftools" require "rbconfig" -exit if defined?(REQUIRE2LIB) +exit if RUBYSCRIPT2EXE.is_compiling? def backslashes(s) s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\") if windows? @@ -41,6 +46,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 @@ -61,7 +67,9 @@ usagescript = "rubyscript2exe.rb" if defined?(TAR2RUBYSCRIPT) $stderr.puts <<-EOF - Usage: ruby #{usagescript} application[.rb[w]] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip] + Usage: ruby #{usagescript} application.rb[w] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip] + or + ruby #{usagescript} application[/] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-nostrip] On Linux and Darwin, there's no difference between ruby and rubyw. @@ -83,7 +91,6 @@ libdir2 = tmplocation("lib/") appdir2 = tmplocation("app/") -script = "#{script}.rb" unless script =~ /\.rbw?$/ app = File.basename(script.gsub(/\.rbw?$/, "")) $stderr.puts "Tracing #{app} ..." unless QUIET @@ -98,12 +105,28 @@ ENV["REQUIRE2LIB_LOADSCRIPT"] = loadscript oldlocation do - command = backslashes("#{bindir1}/ruby") + " #{required.join(" ")} #{libs.join(" ")} -r '#{newlocation("require2lib.rb")}' '#{script}' #{verbose} #{quiet} #{argv.join(" ")}" + unless File.exist?(script) + $stderr.puts "#{script} doesn't exist." + + exit 1 + end + + apprb = script if File.file?(script) + apprb = "#{script}/init.rb" if File.directory?(script) + + unless File.file?(apprb) + $stderr.puts "#{apprb} doesn't exist." + + exit 1 + end + + command = backslashes("#{bindir1}/ruby") + " #{required.join(" ")} #{libs.join(" ")} -r '#{newlocation("require2lib.rb")}' '#{apprb}' #{verbose} #{quiet} #{argv.join(" ")}" system(command) unless File.file?(loadscript) $stderr.puts "Couldn't execute this command (rc=#{$?}):\n#{command}" + $stderr.puts "Stopped." exit 16 end @@ -124,23 +147,24 @@ $stderr.puts "Copying files..." unless QUIET -copyto([RUBYSCRIPT2EXE_DLLS].flatten.collect{|s| oldlocation(s)}, bindir2) if defined?(RUBYSCRIPT2EXE_DLLS) -copyto([RUBYSCRIPT2EXE_BIN].flatten.collect{|s| oldlocation(s)}, bindir2) if defined?(RUBYSCRIPT2EXE_BIN) -copyto([RUBYSCRIPT2EXE_LIB].flatten.collect{|s| oldlocation(s)}, libdir2) if defined?(RUBYSCRIPT2EXE_LIB) - -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([RUBYSCRIPT2EXE::DLLS].flatten.collect{|s| oldlocation(s)}, bindir2) +copyto([RUBYSCRIPT2EXE::BIN].flatten.collect{|s| oldlocation(s)}, bindir2) +copyto([RUBYSCRIPT2EXE::LIB].flatten.collect{|s| oldlocation(s)}, libdir2) + +copyto(rubyexe, bindir2) if (linux? or darwin?) and File.file?(rubyexe) +copyto(ldds(rubyexe), bindir2) if (linux? or darwin?) + +copyto(rubyexe, bindir2) if (windows? or cygwin?) and File.file?(rubyexe) +copyto(rubywexe, bindir2) if (windows? or cygwin?) and File.file?(rubywexe) +copyto(dlls(rubyexe), bindir2) if (windows? or cygwin?) and File.file?(rubyexe) -copyto([oldlocation(script)], appdir2) +copyto(oldlocation(script), appdir2) if File.file?(oldlocation(script)) +Dir.copy(oldlocation(script), appdir2) if File.directory?(oldlocation(script)) 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 TK or defined?(RUBYSCRIPT2EXE_TK) +if TK or RUBYSCRIPT2EXE::TK if File.file?("#{libdir2}/tk.rb") $stderr.puts "Copying TCL/TK..." unless QUIET @@ -180,10 +204,15 @@ File.open(tmplocation("bootstrap.rb"), "w") do |f| f.puts "# Set up the environment" + f.puts "module RUBYSCRIPT2EXE" + f.puts "end" + f.puts "dir = File.expand_path(File.dirname(__FILE__))" f.puts "dir.sub!(/^.:/, '/cygdrive/%s' % $&[0..0].downcase) if dir =~ /^.:/" if cygwin? - f.puts "bin = dir + '/bin'" - f.puts "lib = dir + '/lib'" + f.puts "bin = dir + '/bin'" + f.puts "lib = dir + '/lib'" + f.puts "appbin = dir + '/app/bin'" + f.puts "applib = dir + '/app/lib'" f.puts "verbose = $VERBOSE" f.puts "$VERBOSE = nil" @@ -198,6 +227,7 @@ f.puts "$:.clear" f.puts "$: << lib" + f.puts "$: << applib" f.puts "# Load eee.info" @@ -214,16 +244,16 @@ f.puts " end" f.puts " lines.each do |line|" f.puts " k, v = line.strip.split(/\s*=\s*/, 2)" - f.puts " k.gsub!(/^EEE_/, 'RUBYSCRIPT2EXE_')" - f.puts " v = File.expand_path(v) if k == 'RUBYSCRIPT2EXE_APPEXE'" - f.puts " eval('%s=%s' % [k, v.inspect])" + f.puts " k.gsub!(/^EEE_/, '')" + f.puts " v = File.expand_path(v) if k == 'APPEXE'" + f.puts " RUBYSCRIPT2EXE.module_eval{const_set(k, v)}" f.puts " end" - f.puts " ARGV.concat(RUBYSCRIPT2EXE_PARMSLIST.split(/\000/))" + f.puts " ARGV.concat(RUBYSCRIPT2EXE::PARMSLIST.split(/\000/))" f.puts "end" f.puts "# Set the RubyGems environment." - if RUBYSCRIPT2EXE_RUBYGEMS + if RUBYSCRIPT2EXE::RUBYGEMS f.puts "ENV.keys.each do |key|" f.puts " ENV.delete(key) if key =~ /^gem_/i" f.puts "end" @@ -231,9 +261,13 @@ f.puts "require 'rubygems'" end + f.puts "module RUBYSCRIPT2EXE" + f.puts " RUBYEXE = '#{rubyexe}'" + f.puts " COMPILED = true" + f.puts "end" + f.puts "# Start the application" - f.puts "RUBYSCRIPT2EXE = '#{rubyexe}'" f.puts "load($0 = ARGV.shift)" end @@ -248,8 +282,10 @@ f.puts "r app" f.puts "i eee.info" - apprb = File.basename(script) + apprb = File.basename(script) if File.file?(oldlocation(script)) + apprb = "init.rb" if File.directory?(oldlocation(script)) + # ??? nog iets met app/bin? 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 -T1 %tempdir%/empty.rb %tempdir%/app/#{apprb}" elsif darwin? @@ -261,6 +297,18 @@ end end +too_long = File.read(tmplocation(appeee)).split(/\r*\n/).select{|line| line.length > 255} + +unless too_long.empty? + too_long.each do |line| + $stderr.puts "Line is too long (#{line.length}): #{line}" + end + + $stderr.puts "Stopped." + + exit 16 +end + from = newlocation(eeeexe) from = applocation(eeeexe) unless File.file?(from) from = oldlocation(eeeexe) unless File.file?(from) @@ -272,7 +320,7 @@ tmplocation do ENV["EEE_EXE"] = eeeexe ENV["EEE_DIR"] = Dir.pwd - ENV["EEE_TEMPDIR"] = RUBYSCRIPT2EXE_TEMPDIR if defined?(RUBYSCRIPT2EXE_TEMPDIR) + ENV["EEE_TEMPDIR"] = RUBYSCRIPT2EXE::TEMPDIR if RUBYSCRIPT2EXE::TEMPDIR eeebin1 = newlocation("eee.exe") eeebin1 = newlocation("eee_linux") if linux? @@ -311,3 +359,5 @@ oldlocation do system(backslashes("reshacker -modify #{tmplocation(appexe)}, #{appexe}, #{appico}, icon,appicon,")) if File.file?(appico) and (windows? or cygwin?) end + +end # if __FILE__ == $0 diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/require2lib.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/require2lib.rb --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/require2lib.rb 2006-06-28 17:18:44.000000000 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/require2lib.rb 2006-07-29 20:28:12.000000000 +0200 @@ -3,25 +3,16 @@ exit if __FILE__ == $0 -$require2lib_loaded = [] - -REQUIRE2LIB = true unless defined?(REQUIRE2LIB) - -module Kernel - alias :old_load :load - def load(filename, wrap=false) - $require2lib_loaded << filename unless $require2lib_loaded.include?(filename) - - old_load(filename, wrap) - end +module RUBYSCRIPT2EXE end -module Require +module REQUIRE2LIB JUSTRUBYLIB = ARGV.include?("--require2lib-justrubylib") JUSTSITELIB = ARGV.include?("--require2lib-justsitelib") RUBYGEMS = (not JUSTRUBYLIB) VERBOSE = ARGV.include?("--require2lib-verbose") QUIET = (ARGV.include?("--require2lib-quiet") and not VERBOSE) + LOADED = [] ARGV.delete_if{|arg| arg =~ /^--require2lib-/} @@ -35,7 +26,7 @@ at_exit do Dir.chdir(ORGDIR) - Require.gatherlibs + REQUIRE2LIB.gatherlibs end def self.gatherlibs @@ -57,6 +48,8 @@ pureruby = true if rubygems + require "fileutils" # Hack ??? + requireablefiles = [] Dir.mkdir(File.expand_path("rubyscript2exe.gems", LIBDIR)) @@ -96,7 +89,7 @@ end end - ($" + $require2lib_loaded).each do |req| + ($" + LOADED).each do |req| catch :found do $:.each do |lib| fromfile = File.expand_path(req, lib) @@ -133,12 +126,23 @@ unless LOADSCRIPT == ORGDIR File.open(LOADSCRIPT, "w") do |f| - f.puts "RUBYSCRIPT2EXE_DLLS = #{RUBYSCRIPT2EXE_DLLS.inspect}" if defined?(RUBYSCRIPT2EXE_DLLS) - f.puts "RUBYSCRIPT2EXE_BIN = #{RUBYSCRIPT2EXE_BIN.inspect}" if defined?(RUBYSCRIPT2EXE_BIN) - f.puts "RUBYSCRIPT2EXE_LIB = #{RUBYSCRIPT2EXE_LIB.inspect}" if defined?(RUBYSCRIPT2EXE_LIB) - f.puts "RUBYSCRIPT2EXE_TEMPDIR = #{RUBYSCRIPT2EXE_TEMPDIR.inspect}" if defined?(RUBYSCRIPT2EXE_TEMPDIR) - f.puts "RUBYSCRIPT2EXE_RUBYGEMS = #{rubygems.inspect}" + f.puts "module RUBYSCRIPT2EXE" + RUBYSCRIPT2EXE.class_variables.each do |const| + const = const[2..-1] + f.puts " #{const.upcase}=#{RUBYSCRIPT2EXE.send(const).inspect}" + end + f.puts " RUBYGEMS=#{rubygems.inspect}" + f.puts "end" end end end end + +module Kernel + alias :old_load :load + def load(filename, wrap=false) + REQUIRE2LIB::LOADED << filename unless REQUIRE2LIB::LOADED.include?(filename) + + old_load(filename, wrap) + end +end diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/rubyscript2exe.rb rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/rubyscript2exe.rb --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/rubyscript2exe.rb 2006-07-29 20:29:13.373843640 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/rubyscript2exe.rb 2006-07-29 20:28:11.000000000 +0200 @@ -0,0 +1,47 @@ +module RUBYSCRIPT2EXE + @@dlls = [] + @@bin = [] + @@lib = [] + @@tempdir = nil + @@tk = false + + 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.appdir(file=nil, &block) + dir = File.dirname(File.expand_path($0)) + dir = File.expand_path(File.join(TEMPDIR, "app")) if not defined?(TAR2RUBYSCRIPT) and is_compiled? and defined?(TEMPDIR) + + if block + pdir = Dir.pwd + + Dir.chdir(dir) + res = block[] + Dir.chdir(pdir) + else + res = File.join(*([dir, file].compact)) + end + + res + end + + def self.is_compiling? + defined?(REQUIRE2LIB) + end + + def self.is_compiled? + defined?(COMPILED) + end +end diff -ur rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/VERSION rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/VERSION --- rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/VERSION 2006-06-28 17:18:44.000000000 +0200 +++ rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/VERSION 2006-07-29 20:28:11.000000000 +0200 @@ -1 +1 @@ -0.4.4 +0.5.0 Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee.exe differ Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eee_linux and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eee_linux differ Binary files rubyscript2exe-0.4.4.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.5.0.tar.gz/rubyscript2exe/eeew.exe differ