diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/README rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/README
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/README 2004-06-27 20:07:57.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/README 2004-07-26 18:46:52.000000000 +0200
@@ -2,7 +2,7 @@
The latter is just for playing with the internals. Both are
available on the site.
-Usage: ruby init.rb application[.rb[w]] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby] [--rubyscript2exe-msvcr71]
+ Usage: ruby init.rb application[.rb[w]] [--rubyscript2exe-rubyw|--rubyscript2exe-ruby]
For more information, see
http://www.erikveen.dds.nl/rubyscript2exe/ .
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/eee.pas rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/eee.pas
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/eee.pas 2004-06-27 19:52:18.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/eee.pas 2004-07-26 16:46:37.000000000 +0200
@@ -6,6 +6,14 @@
SysUtils, Dos;
+const
+
+ {$IFDEF LINUX}
+ slash = ´/´;
+ {$ELSE}
+ slash = ´\´;
+ {$ENDIF}
+
type
header = record
@@ -18,7 +26,7 @@
length : longint;
number : longint;
who : string[255];
- exename : string[32];
+ exename : string[255];
end;
var
@@ -33,13 +41,11 @@
tekst1 : string[255];
tekst2 : string;
s : string[255];
- c : string;
- p : string;
+ i : longint;
+ dir : string[255];
h : header;
t : tail;
teller : longint;
- i : longint;
- dir : string[255];
parms : string;
quotedparms : string;
justextract : boolean;
@@ -87,7 +93,7 @@
chdir(dir);
{$I-}
- rmdir(path + ´\´);
+ rmdir(path + slash);
if (ioresult <> 0) then begin
// writeln(´Couldn´´t delete directory ´ + path + ´ (Known Error).´);
end;
@@ -162,183 +168,360 @@
end;
-procedure pakin;
+procedure pakin_f(var outfile: file; klasse: string[1]; tekst: string[255]; entry: string[255]; var t: tail);
+
+var
+ infile : file of byte;
+ h : header;
+
+begin
+
+ h.klasse := klasse;
+ h.tekst := tekst;
+
+ assign(infile, entry);
+ reset(infile, 1);
+ h.length := filesize(infile);
+ t.length := t.length + h.length + sizeof(h);
+ blockwrite(outfile, h, sizeof(h));
+ blockcopy(infile, outfile, h.length, true);
+ close(infile);
+
+ t.number := t.number + 1;
+
+end;
+
+
+procedure pakin_d(var outfile: file; klasse: string[1]; tekst: string[255]; entry: string[255]; var t: tail);
+
+var
+ h : header;
+
+begin
+
+ entry := entry;
+
+ h.klasse := klasse;
+ h.tekst := tekst;
+ h.length := 0;
+ t.length := t.length + sizeof(h);
+
+ blockwrite(outfile, h, sizeof(h));
+
+ t.number := t.number + 1;
+
+end;
+
+
+procedure pakin_r(var outfile: file; klasse: string[1]; tekst: string[255]; entry: string[255]; var t: tail);
+
+var
+ f : file;
+ sr : searchrec;
+ dir : string[255];
+ attr : word;
begin
- assign(outfile, paramstr(2));
- rewrite(outfile, 1);
+ klasse := klasse;
+
+ pakin_d(outfile, ´d´, tekst, entry, t);
+
+ getdir(0, dir);
+ chdir(entry);
- assign(eeefile, paramstr(1));
- reset(eeefile);
+ findfirst(´*.*´, anyfile or directory, sr);
+ while(doserror = 0) do begin
+ assign(f, sr.name); // Foutje in 1.9.2 ???
+ getfattr(f, attr); // Foutje in 1.9.2 ???
- if (paramcount > 2) then begin
- assign(infile, paramstr(3));
- t.exename := paramstr(3);
+ if (attr and directory > 0) then begin
+ if ((not (sr.name = ´.´)) and (not (sr.name = ´..´))) then begin
+ pakin_r(outfile, ´r´, tekst + slash + sr.name, sr.name, t);
+ end;
end
else begin
- assign(infile, paramstr(0));
- t.exename := paramstr(0);
+ pakin_f(outfile, ´f´, tekst + slash + sr.name, sr.name, t);
end;
- reset(infile, 1);
- blockcopy(infile, outfile, filesize(infile), false);
- close(infile);
+ findnext(sr);
+ end;
+ findclose(sr);
- t.length := 0;
- t.number := 0;
- t.who := me;
+ chdir(dir);
- s := ´\´;
- i := pos(s, t.exename);
- while (i > 0) do begin
- t.exename := copy(t.exename, i+length(s), length(t.exename)-(i+length(s))+1);
- i := pos(s, t.exename);
- end;
-
- repeat
- readln(eeefile, s);
-
- if (not (s = ´´) and not (copy(s, 1, 1) = ´#´)) then begin
- klasse := copy(s, 1, 1);
- tekst1 := copy(s, 3, length(s)-2);
-
- // writeln(h.klasse, ´ ´, h.tekst);
-
- if (klasse = ´f´) then begin
- h.klasse := klasse;
- h.tekst := tekst1;
-
- assign(infile, h.tekst);
- reset(infile, 1);
- h.length := filesize(infile);
- t.length := t.length + h.length + sizeof(h);
- blockwrite(outfile, h, sizeof(h));
- blockcopy(infile, outfile, h.length, true);
- close(infile);
- end;
+end;
- if (klasse = ´c´) then begin
- h.klasse := klasse;
- h.tekst := tekst1;
- h.length := 0;
- t.length := t.length + sizeof(h);
- blockwrite(outfile, h, sizeof(h));
- end;
+procedure pakin_c(var outfile: file; klasse: string[1]; tekst: string[255]; entry: string[255]; var t: tail);
- if (klasse = ´t´) then begin
- h.klasse := klasse;
- h.tekst := tekst1;
- h.length := 0;
- t.length := t.length + sizeof(h);
+var
+ h : header;
- blockwrite(outfile, h, sizeof(h));
- end;
+begin
+
+ entry := entry;
+
+ h.klasse := klasse;
+ h.tekst := tekst;
+ h.length := 0;
+ t.length := t.length + sizeof(h);
+
+ blockwrite(outfile, h, sizeof(h));
+
+ t.number := t.number + 1;
+
+end;
+
+
+procedure pakin_t(var outfile: file; klasse: string[1]; tekst: string[255]; entry: string[255]; var t: tail);
+
+var
+ h : header;
+
+begin
+
+ entry := entry;
+
+ h.klasse := klasse;
+ h.tekst := tekst;
+ h.length := 0;
+ t.length := t.length + sizeof(h);
+
+ blockwrite(outfile, h, sizeof(h));
+
+ t.number := t.number + 1;
+
+end;
+
+
+procedure pakin;
+
+begin
+
+ assign(outfile, paramstr(2));
+ rewrite(outfile, 1);
+
+ assign(eeefile, paramstr(1));
+ reset(eeefile);
+
+ if (paramcount > 2) then begin
+ assign(infile, paramstr(3));
+ t.exename := paramstr(3);
+ end
+ else begin
+ assign(infile, paramstr(0));
+ t.exename := paramstr(0);
+ end;
+
+ reset(infile, 1);
+ blockcopy(infile, outfile, filesize(infile), false);
+ close(infile);
+
+ t.length := 0;
+ t.number := 0;
+ t.who := me;
+
+ s := slash;
+ i := pos(s, t.exename);
+ while (i > 0) do begin
+ t.exename := copy(t.exename, i+length(s), length(t.exename)-(i+length(s))+1);
+ i := pos(s, t.exename);
+ end;
+
+ repeat
+ readln(eeefile, s);
- t.number := t.number + 1;
+ if (not (s = ´´) and not (copy(s, 1, 1) = ´#´)) then begin
+ klasse := copy(s, 1, 1);
+ tekst1 := copy(s, 3, length(s)-2);
+
+ case klasse[1] of
+ ´f´: pakin_f(outfile, klasse, tekst1, tekst1, t);
+ ´d´: pakin_d(outfile, klasse, tekst1, tekst1, t);
+ ´r´: pakin_r(outfile, klasse, tekst1, tekst1, t);
+ ´c´: pakin_c(outfile, klasse, tekst1, tekst1, t);
+ ´t´: pakin_t(outfile, klasse, tekst1, tekst1, t);
end;
- until eof(eeefile);
+ end;
+ until eof(eeefile);
- t.length := t.length + sizeof(t);
+ t.length := t.length + sizeof(t);
- blockwrite(outfile, t, sizeof(t));
+ blockwrite(outfile, t, sizeof(t));
- close(eeefile);
+ close(eeefile);
- close(outfile);
+ close(outfile);
end;
-procedure pakuit;
+procedure pakuit_f(var infile: file; var outfile: file; tekst: string[255]; var h: header);
begin
- randomize;
+ assign(outfile, workdir + slash + tekst);
+ rewrite(outfile, 1);
- getdir(0, dir);
- chdir(tempdir);
- {$I-}
- repeat
- str(random(1000), s);
- workdir := ´eee.´ + s;
- mkdir(workdir);
- until (ioresult = 0);
- {$I+}
+ blockcopy(infile, outfile, h.length, true);
- workdir := tempdir + ´\´ + workdir;
- chdir(dir);
+ close(outfile);
- assign(infile, paramstr(0));
- reset(infile, 1);
- blockeat(infile, filesize(infile)-t.length);
+end;
- try
- for teller := 1 to t.number do begin
- blockread(infile, h, sizeof(h));
+procedure pakuit_d(var infile: file; var outfile: file; tekst: string[255]; var h: header);
- tekst2 := h.tekst;
+begin
- s := ´%tempdir%´;
- i := pos(s, tekst2);
- while (i > 0) do begin
- tekst2 := copy(tekst2, 1, i-1) + workdir + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
- i := pos(s, tekst2);
- end;
+ infile := infile;
+ outfile := outfile;
+ h := h;
- s := ´%parms%´;
- i := pos(s, tekst2);
- while (i > 0) do begin
- tekst2 := copy(tekst2, 1, i-1) + parms + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
- i := pos(s, tekst2);
- end;
+ mkdir(workdir + slash + tekst);
+
+end;
- s := ´%quotedparms%´;
- i := pos(s, tekst2);
- while (i > 0) do begin
- tekst2 := copy(tekst2, 1, i-1) + quotedparms + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
- i := pos(s, tekst2);
- end;
- // writeln(h.klasse, ´ ´, tekst2);
+procedure pakuit_c(var infile: file; var outfile: file; tekst: string[255]; var h: header);
- if (h.klasse = ´f´) then begin
- assign(outfile, workdir + ´\´ + tekst2);
- rewrite(outfile, 1);
+var
+ c : string;
+ p : string;
+ i : longint;
- blockcopy(infile, outfile, h.length, true);
+begin
- close(outfile);
- end;
+ infile := infile;
+ outfile := outfile;
+ h := h;
+
+ {$IFDEF LINUX}
+ c := getenv(´SHELL´);
+ p := ´-c "´ + tekst + ´"´;
+ {$ELSE}
+ i := pos(´ ´, tekst);
+ if (i = 0) then begin
+ c := tekst;
+ p := ´´;
+ end
+ else begin
+ c := copy(tekst, 1, i-1);
+ p := copy(tekst, i+1, length(tekst)-i);
+ end;
+ {$ENDIF}
- if (h.klasse = ´c´) then begin
- i := pos(´ ´, tekst2);
- c := copy(tekst2, 1, i-1);
- p := copy(tekst2, i+1, length(tekst2)-i);
- executeprocess(c, p);
- end;
+ executeprocess(c, p);
- if (h.klasse = ´t´) then begin
- getdir(0, dir);
- chdir(workdir);
- i := pos(´ ´, tekst2);
- c := copy(tekst2, 1, i-1);
- p := copy(tekst2, i+1, length(tekst2)-i);
- executeprocess(c, p);
- chdir(dir);
- end;
- end;
+end;
+
+
+procedure pakuit_t(var infile: file; var outfile: file; tekst: string[255]; var h: header);
+
+var
+ c : string;
+ p : string;
+ i : longint;
+ dir : string[255];
+
+begin
+
+ infile := infile;
+ outfile := outfile;
+ h := h;
+
+ {$IFDEF LINUX}
+ c := getenv(´SHELL´);
+ p := ´-c "´ + tekst + ´"´;
+ {$ELSE}
+ i := pos(´ ´, tekst);
+ if (i = 0) then begin
+ c := tekst;
+ p := ´´;
+ end
+ else begin
+ c := copy(tekst, 1, i-1);
+ p := copy(tekst, i+1, length(tekst)-i);
+ end;
+ {$ENDIF}
+
+ getdir(0, dir);
+ chdir(workdir);
+ executeprocess(c, p);
+ chdir(dir);
+
+end;
+
+
+procedure pakuit;
+
+begin
+
+ randomize;
+
+ getdir(0, dir);
+ chdir(tempdir);
+ {$I-}
+ repeat
+ str(random(1000), s);
+ workdir := ´eee.´ + s;
+ mkdir(workdir);
+ until (ioresult = 0);
+ {$I+}
+
+ workdir := tempdir + slash + workdir;
+ chdir(dir);
+
+ assign(infile, paramstr(0));
+ reset(infile, 1);
+ blockeat(infile, filesize(infile)-t.length);
+
+ try
+
+ for teller := 1 to t.number do begin
+ blockread(infile, h, sizeof(h));
+
+ klasse := h.klasse;
+ tekst2 := h.tekst;
- finally
+ s := ´%tempdir%´;
+ i := pos(s, tekst2);
+ while (i > 0) do begin
+ tekst2 := copy(tekst2, 1, i-1) + workdir + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
+ i := pos(s, tekst2);
+ end;
- close(infile);
+ s := ´%parms%´;
+ i := pos(s, tekst2);
+ while (i > 0) do begin
+ tekst2 := copy(tekst2, 1, i-1) + parms + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
+ i := pos(s, tekst2);
+ end;
- recursivedelete(workdir);
+ s := ´%quotedparms%´;
+ i := pos(s, tekst2);
+ while (i > 0) do begin
+ tekst2 := copy(tekst2, 1, i-1) + quotedparms + copy(tekst2, i+length(s), length(tekst2)-(i+length(s))+1);
+ i := pos(s, tekst2);
+ end;
+ case klasse[1] of
+ ´f´: pakuit_f(infile, outfile, tekst2, h);
+ ´d´: pakuit_d(infile, outfile, tekst2, h);
+ ´c´: pakuit_c(infile, outfile, tekst2, h);
+ ´t´: pakuit_t(infile, outfile, tekst2, h);
+ end;
end;
+ finally
+
+ close(infile);
+
+ recursivedelete(workdir);
+
+ end;
+
end;
@@ -347,40 +530,47 @@
begin
assign(infile, paramstr(0));
- reset(infile, 1);
+ reset(infile, 1);
- assign(outfile, t.exename);
- rewrite(outfile);
- blockcopy(infile, outfile, filesize(infile)-t.length, false);
- close(outfile);
+ assign(outfile, t.exename);
+ rewrite(outfile);
+ blockcopy(infile, outfile, filesize(infile)-t.length, false);
+ close(outfile);
- assign(eeefile, ´app.eee´);
- rewrite(eeefile);
+ assign(eeefile, ´app.eee´);
+ rewrite(eeefile);
- try
+ try
- for teller := 1 to t.number do begin
- blockread(infile, h, sizeof(h));
+ for teller := 1 to t.number do begin
+ blockread(infile, h, sizeof(h));
- writeln(eeefile, h.klasse, ´ ´, h.tekst);
+ writeln(eeefile, h.klasse, ´ ´, h.tekst);
- if (h.klasse = ´f´) then begin
- assign(outfile, h.tekst);
- rewrite(outfile, 1);
+ if (h.klasse = ´f´) then begin
+ assign(outfile, h.tekst);
+ rewrite(outfile, 1);
- blockcopy(infile, outfile, h.length, true);
+ blockcopy(infile, outfile, h.length, true);
- close(outfile);
- end;
+ close(outfile);
end;
- finally
+ if (h.klasse = ´d´) then begin
+ {$I-}
+ mkdir(h.tekst);
+ if (ioresult = 0) then;
+ {$I+}
+ end;
+ end;
+
+ finally
- close(eeefile);
+ close(eeefile);
- close(infile);
+ close(infile);
- end;
+ end;
end;
@@ -388,6 +578,10 @@
begin
tempdir := getenv(´TEMP´);
+ if (tempdir = ´´) then begin
+ tempdir := ´/tmp´
+ end;
+
me := ´EEE: Dit is mijn herkennigsstring voor het herkennen van pakin of pakuit mode.´;
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/ev/ftools.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/ev/ftools.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/ev/ftools.rb 2004-06-27 19:57:16.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/ev/ftools.rb 2004-07-26 19:15:25.000000000 +0200
@@ -1,87 +0,0 @@
-require "ftools"
-
-class Dir
- def Dir.mkdirrec(dir)
- pdir = File.dirname(dir)
-
- if not pdir.empty? and not FileTest.directory?(pdir)
- mkdirrec (pdir)
- end
-
- Dir.mkdir(dir) rescue nil
- end
-end
-
-class File
- 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
-
- 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 rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb 2004-06-27 19:55:16.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/ev/oldandnewlocation.rb 2004-07-26 19:15:21.000000000 +0200
@@ -6,6 +6,7 @@
rescue NameError
def oldlocation(file="")
dir = ENV["OLDDIR"]
+ res = nil
if block_given?
pdir = Dir.pwd
@@ -26,6 +27,7 @@
rescue NameError
def newlocation(file="")
dir = ENV["NEWDIR"]
+ res = nil
if block_given?
pdir = Dir.pwd
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/init.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/init.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/init.rb 2004-06-27 19:54:07.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/init.rb 2004-07-26 18:48:26.000000000 +0200
@@ -1,33 +1,9 @@
require "ev/oldandnewlocation"
-require "ev/ftools"
+require "ftools"
require "rbconfig"
-module RubyScript2Exe
-
-def self.execute(command)
- command = command.gsub(/^\.\//, "").gsub(/\//, "\\\\")
-
- system(command)
-end
-
-def self.copy(from, to)
- from = from.gsub(/^\.\//, "").gsub(/\//, "\\\\")
- to = to.gsub(/^\.\//, "").gsub(/\//, "\\\\")
-
- File.copy(from, to)
-end
-
-def self.move(from, to)
- from = from.gsub(/^\.\//, "").gsub(/\//, "\\\\")
- to = to.gsub(/^\.\//, "").gsub(/\//, "\\\\")
-
- File.move(from, to)
-end
-
script = ARGV.shift
-msvcr71 = ARGV.include?("--rubyscript2exe-msvcr71")
-
rubyw = false
rubyw = true if script =~ /\.rbw$/
rubyw = false if ARGV.include?("--rubyscript2exe-ruby")
@@ -38,67 +14,53 @@
end
bindir = Config::CONFIG["bindir"]
-rubyexe = "ruby.exe"
-rubyexe = "rubyw.exe" if rubyw
libruby = Config::CONFIG["LIBRUBY_SO"]
-msvcr71 = "msvcr71.dll" if msvcr71
if not script.nil?
script = "#{script}.rb" if not script =~ /\.rbw?$/
app = File.basename(script.gsub(/\.rbw?$/, ""))
+ libdir = File.expand_path("lib")
puts "Tracing #{app}..."
oldlocation do
- tar = FileTest.file?("tar.exe")
- copy(newlocation("tar.exe"), "tar.exe") if not tar
-
- execute("#{bindir}/ruby -r ´#{newlocation("require2tar.rb")}´ ´#{script}´ #{ARGV.collect{|a| "´" + a + "´"}.join(" ")}")
-
- File.delete("tar.exe") if not tar
+ system("#{bindir}/ruby -r ´#{newlocation("require2lib.rb")}´ ´#{script}´ ´#{libdir}´ #{ARGV.collect{|a| "´" + a + "´"}.join(" ")}".gsub(/^\.\//, "").gsub(/\//, "\\\\"))
end
- puts "Gathering files..."
+ puts "Copying files..."
- copy("#{bindir}/ruby.exe", "ruby.exe")
- copy("#{bindir}/rubyw.exe", "rubyw.exe")
- copy("#{bindir}/#{libruby}", libruby)
- copy("#{bindir}/#{msvcr71}", msvcr71) if msvcr71
- move("#{oldlocation("rubyrequired.tar")}", "rubyrequired.tar")
- copy("#{oldlocation(script)}", "app.rb")
+ Dir.mkdir("bin")
+ Dir.mkdir("app")
- puts "Packing..."
+ File.copy("#{bindir}/ruby.exe" , "bin/ruby.exe" )
+ File.copy("#{bindir}/rubyw.exe" , "bin/rubyw.exe" )
+ File.copy("#{bindir}/#{libruby}" , "bin/#{libruby}" )
+ File.copy("#{bindir}/msvcr71.dll" , "bin/msvcr71.dll" ) if File.file?("#{bindir}/msvcr71.dll")
+ File.copy("#{oldlocation(script)}" , "app/app.rb" )
- execute("#{bindir}/ruby tar2rubyscript.rb rubyrequired.tar")
-
- puts "Creating #{app}.exe ..."
+ puts "Creating #{app}.exe..."
File.open("app.eee", "w") do |f|
- f.puts "f ruby.exe"
- f.puts "f rubyw.exe"
- f.puts "f #{libruby}"
- f.puts "f #{msvcr71}" if msvcr71
- f.puts "f rubyrequired.rb"
- f.puts "f app.rb"
+ f.puts "r bin"
+ f.puts "r lib"
+ f.puts "r app"
- f.puts "t #{rubyexe} rubyrequired.rb --tar2rubyscript-justextract"
+ rubyexe = "ruby.exe"
+ rubyexe = "rubyw.exe" if rubyw
- f.puts "c %tempdir%/#{rubyexe} -I %tempdir%/rubyrequired %tempdir%/app.rb %quotedparms%"
+ f.puts "c %tempdir%/bin/#{rubyexe} -I %tempdir%/lib %tempdir%/app/app.rb %quotedparms%"
end
- if rubyw
- eeeexe = "eeew.exe"
- else
- eeeexe = "eee.exe"
- end
+ eeeexe = "eee.exe"
+ eeeexe = "eeew.exe" if rubyw
+ appexe = "#{app}.exe"
+ appico = "#{app}.ico"
- execute("./eee app.eee #{app}.exe #{eeeexe}")
-
- copy("#{app}.exe", oldlocation)
+ system(".\\eee app.eee #{appexe} #{eeeexe}")
oldlocation do
- system("reshacker -modify %s, %s, %s, icon,appicon," % [newlocation("#{app}.exe"), "#{app}.exe", "#{app}.ico"]) if File.file?("#{app}.ico")
- end
-end
+ File.copy(newlocation(appexe), appexe)
+ system("reshacker -modify #{newlocation(appexe)}, #{appexe}, #{appico}, icon,appicon,") if File.file?(appico)
+ end
end
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/require2lib.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/require2lib.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/require2lib.rb 2004-07-26 19:15:25.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/require2lib.rb 2004-07-26 19:15:21.000000000 +0200
@@ -0,0 +1,56 @@
+require "ftools"
+require "rbconfig"
+
+module Require
+ JUSTEV = ARGV.include?("--require2lib-justev")
+ JUSTSITE = ARGV.include?("--require2lib-justsite")
+
+ ARGV.delete_if do |arg|
+ arg =~ /^--require2lib-/
+ end
+
+ ORGDIR = Dir.pwd
+ THISFILE = File.expand_path(__FILE__)
+ LIBDIR = File.expand_path(ARGV.shift)
+ SITEDIR = Config::CONFIG["sitedir"]
+
+ at_exit do
+ Dir.chdir(ORGDIR)
+
+ Require.gatherlibs
+ end
+
+ def self.gatherlibs
+ $stderr.puts "Gathering files..."
+
+ File.makedirs(LIBDIR)
+
+ $".each do |req|
+ if not JUSTEV or req =~ /^ev\//
+ catch :found do
+ $:.each do |lib|
+ fromfile = File.expand_path(req, lib)
+ tofile = File.expand_path(req, LIBDIR)
+
+ if FileTest.file?(fromfile)
+ unless fromfile == tofile or fromfile == THISFILE
+ if JUSTSITE and fromfile.include?(SITEDIR)
+ $stderr.puts "Skipped #{fromfile} ."
+ else
+ #$stderr.puts "Found #{fromfile} ."
+
+ File.makedirs(File.dirname(tofile))
+ File.copy(fromfile, tofile)
+ end
+ end
+
+ throw :found
+ end
+ end
+
+ $stderr.puts "Can´t find #{req} ." unless req =~ /^ev\//
+ end
+ end
+ end
+ end
+end
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/require2tar.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/require2tar.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/require2tar.rb 2004-06-27 19:51:17.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/require2tar.rb 2004-07-26 19:15:25.000000000 +0200
@@ -1,92 +0,0 @@
-require "ftools"
-
-JustCopy = ARGV.include?("--require2tar-justcopy")
-JustEV = ARGV.include?("--require2tar-justev")
-
-ARGV.delete_if do |arg|
- arg =~ /^--require2tar-/
-end
-
-Require2TarDir = Dir.pwd
-
-at_exit do
- Dir.chdir Require2TarDir
- Require.createtar
-end
-
-module Require
- def self.createtar
- temp = (ENV["TEMP"] or "/tmp")
- tmpdir = File.expand_path("rubyrequired2tar.#{Process.pid}", temp)
- tardir = "rubyrequired"
- tarfile = "rubyrequired.tar"
- todir = File.expand_path(tardir, tmpdir)
-
- File.makedirs(tmpdir)
-
- $".delete_if{|req| not req =~ /^ev\//} if JustEV
-
- $".each do |req|
- found = false
-
- $:.each do |lib|
- if not found
- file = File.expand_path(req, lib)
- if FileTest.file?(file)
- found = true
- fromfile = file
- tofile = File.expand_path(req, todir)
- tofile = req if JustCopy
-
- #puts "Found #{fromfile} ."
-
- File.makedirs(File.dirname(tofile))
- File.copy(fromfile, tofile)
- end
- end
- end
-
- if not found
- puts "Can´t find #{req} ." if not req =~ /^ev\//
- end
- end
-
- if not JustCopy
- File.copy("tar.exe", File.expand_path("tar.exe", tmpdir)) if FileTest.file?("tar.exe")
-
- pdir = Dir.pwd
- Dir.chdir(tmpdir)
- puts "Creating #{tarfile}..."
-
- system("tar chf #{tarfile} #{tardir}")
-
- s = File.expand_path(tarfile, pdir)
- s = s.gsub(/^\.\//, "").gsub(/\//, "\\\\")
-
- File.move(tarfile, s)
- Dir.chdir(pdir)
- end
-
- File.rm_rf(tmpdir)
- end
-end
-
-class File
- 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
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/tar2rubyscript.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/tar2rubyscript.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/tar2rubyscript.rb 2004-06-27 19:51:01.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/tar2rubyscript.rb 2004-07-26 19:15:25.000000000 +0200
@@ -1,81 +0,0 @@
-require "ev/oldandnewlocation"
-
-scriptfile = "tarrubyscript.rb"
-tarfile = oldlocation(ARGV.shift)
-rbfile = oldlocation(ARGV.shift)
-licensefile = oldlocation(ARGV.shift)
-
-if tarfile.nil?
- exit 1
-end
-
-tarfile.dup.gsub!(/[\/\\]$/, "")
-
-if not FileTest.exist?(tarfile)
- $stderr.puts "#{tarfile} doesn´t exist."
- exit
-end
-
-if not licensefile.nil? and not FileTest.file?(licensefile)
- $stderr.puts "#{licensefile} doesn´t exist."
- exit
-end
-
-script = nil
-archive = nil
-
-File.open(scriptfile) {|f| script = f.read}
-
-if FileTest.file?(tarfile)
- File.open(tarfile, "rb") {|f| archive = [f.read].pack("m").split("\n").collect{|s| "# " + s}.join("\n")}
-end
-
-if FileTest.directory?(tarfile)
- orgdir = Dir.pwd
-
- Dir.chdir(tarfile)
-
- if FileTest.file?("tar2rubyscript.bat")
- $stderr.puts "\".\\tar2rubyscript.bat\""
- system(".\\tar2rubyscript.bat")
- end
-
- if FileTest.file?("tar2rubyscript.sh")
- $stderr.puts "\". ./tar2rubyscript.sh\""
- system("sh -c \". ./tar2rubyscript.sh\"")
- end
-
- Dir.chdir("..")
-
- begin
- tar = "tar"
- IO.popen("#{tar} ch #{tarfile.sub(/.*[\/\\]/, "")}", "rb") {|f| archive = [f.read].pack("m").split("\n").collect{|s| "# " + s}.join("\n")}
- rescue
- tar = newlocation("tar.exe")
- IO.popen("#{tar} ch #{tarfile.sub(/.*[\/\\]/, "")}", "rb") {|f| archive = [f.read].pack("m").split("\n").collect{|s| "# " + s}.join("\n")}
- end
-
- Dir.chdir(orgdir)
-end
-
-if not licensefile.nil?
- lic = nil ; File.open(licensefile) {|f| lic = f.readlines}
-
- lic.collect! do |line|
- line.gsub!(/[\r\n]/, "")
- line = "# #{line}" unless line =~ /^[ \t]*#/
- line
- end
-
- script = "# License, not of this script, but of the application it contains:\n#\n" + lic.join("\n") + "\n\n" + script
-end
-
-rbfile = tarfile.gsub(/\.tar$/, "") + ".rb" if (rbfile.nil? or File.basename(rbfile) == "-")
-
-File.open(rbfile, "wb") do |f|
- f.write script
- f.write "\n"
- f.write "\n"
- f.write archive
- f.write "\n"
-end
diff -ur rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/tarrubyscript.rb rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/tarrubyscript.rb
--- rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/tarrubyscript.rb 2004-06-27 19:51:04.000000000 +0200
+++ rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/tarrubyscript.rb 2004-07-26 19:15:25.000000000 +0200
@@ -1,367 +0,0 @@
-# License of this script, not of the application it contains:
-#
-# Copyright Erik Veenstra <tar2rubyscript@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.
-
-# Tar2RubyScript constants
-
-JustExtract = ARGV.include?("--tar2rubyscript-justextract")
-ToTar = ARGV.include?("--tar2rubyscript-totar")
-
-ARGV.concat []
-
-ARGV.delete_if do |arg|
- arg =~ /^--tar2rubyscript-/
-end
-
-# Tar constants
-
-BLOCKSIZE = 512
-
-NAMELEN = 100
-MODELEN = 8
-UIDLEN = 8
-GIDLEN = 8
-CHKSUMLEN = 8
-SIZELEN = 12
-MAGICLEN = 8
-MODTIMELEN = 12
-UNAMELEN = 32
-GNAMELEN = 32
-DEVLEN = 8
-
-TMAGIC = "ustar"
-GNU_TMAGIC = "ustar "
-SOLARIS_TMAGIC = "ustar\00000"
-
-MAGICS = [TMAGIC, GNU_TMAGIC, SOLARIS_TMAGIC]
-
-LF_OLDFILE = ´\0´
-LF_FILE = ´0´
-LF_LINK = ´1´
-LF_SYMLINK = ´2´
-LF_CHAR = ´3´
-LF_BLOCK = ´4´
-LF_DIR = ´5´
-LF_FIFO = ´6´
-LF_CONTIG = ´7´
-
-class Reader
- def initialize(filehandle)
- @fp = filehandle
- end
-
- def extract
- each do |entry|
- entry.extract
- end
- end
-
- def each
- @fp.rewind
-
- while entry = next_entry
- yield(entry)
- end
- end
-
- def next_entry
- buf = @fp.read(BLOCKSIZE)
-
- if buf.length < BLOCKSIZE or buf == "\000" * BLOCKSIZE
- entry = nil
- else
- entry = Entry.new(buf, @fp)
- end
-
- entry
- end
-end
-
-class Entry
- attr_reader(:header, :data)
-
- def initialize(header, fp)
- @header = Header.new(header)
-
- if @header.file?
- padding = (BLOCKSIZE - (@header.size % BLOCKSIZE)) % BLOCKSIZE
-
- @data = fp.read(@header.size) if @header.size > 0
- dummy = fp.read(padding) if padding > 0
- end
- end
-
- def extract
- if not @header.name.empty?
- if @header.dir?
- begin
- Dir.mkdir(@header.name, @header.mode)
- rescue SystemCallError => e
- puts "Couldn´t create dir #{@header.name}: " + e.message
- end
- else
- if @header.file?
- begin
- File.open(@header.name, "wb") do |fp|
- fp.write(@data)
- fp.chmod(@header.mode)
- end
- rescue => e
- puts "Couldn´t create file #{@header.name}: " + e.message
- end
- else
- puts "Couldn´t handle entry #{@header.name}"
- end
- end
-
- #File.chown(@header.uid, @header.gid, @header.name)
- #File.utime(Time.now, @header.mtime, @header.name)
- end
- end
-end
-
-class Header
- attr_reader(:name, :uid, :gid, :size, :mtime, :uname, :gname, :mode)
-
- def initialize(header)
- fields = header.unpack(´A100 A8 A8 A8 A12 A12 A8 A1 A100 A8 A32 A32 A8 A8´)
- types = [´str´, ´oct´, ´oct´, ´oct´, ´oct´, ´time´, ´oct´, ´str´, ´str´, ´str´, ´str´, ´str´, ´oct´, ´oct´]
-
- begin
- converted = []
- while field = fields.shift
- type = types.shift
-
- case type
- when ´str´ then converted.push(field)
- when ´oct´ then converted.push(field.oct)
- when ´time´ then converted.push(Time::at(field.oct))
- end
- end
-
- @name, @mode, @uid, @gid, @size, @mtime, @chksum, @linkflag, @linkname, @magic, @uname, @gname, @devmajor, @devminor = converted
-
- @name.gsub!(/^\.\//, "")
-
- @raw = header
- rescue ArgumentError => e
- raise "Couldn´t determine a real value for a field (#{field})"
- end
-
- raise "Magic header value #{@magic.inspect} is invalid." if not MAGICS.include?(@magic)
-
- @linkflag = LF_FILE if @linkflag == LF_OLDFILE or @linkflag == LF_CONTIG
- @linkflag = LF_DIR if @name[-1] == ´/´ and @linkflag == LF_FILE
- @linkname = @linkname[1,-1] if @linkname[0] == ´/´
- @size = 0 if @size < 0
- @name = @linkname + ´/´ + @name if @linkname.size > 0
- end
-
- def file?
- @linkflag == LF_FILE
- end
-
- def dir?
- @linkflag == LF_DIR
- end
-end
-
-class TempSpace
- def initialize
- @archive = File.new($0, "rb").read.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
- @olddir = Dir.pwd
- temp = ENV["TEMP"]
- temp = "/tmp" if temp.nil?
- @tempdir = "#{temp}/tar2rubyscript.d.#{Process.pid}"
- @tempfile = "#{temp}/tar2rubyscript.f.#{Process.pid}"
-
- @@tempspace = self
-
- @newdir = @tempdir
- end
-
- def extract
- Dir.mkdir(@tempdir) if not FileTest.exists?(@tempdir)
-
- newlocation do
-
- # Create the temp environment.
-
- File.open(@tempfile, "wb") {|f| f.write @archive}
- File.open(@tempfile, "rb") {|f| Reader.new(f).extract}
-
- # Eventually look for a subdirectory.
-
- entries = Dir.entries(".")
- entries.delete(".")
- entries.delete("..")
-
- if entries.length == 1
- entry = entries.shift.dup
- if FileTest.directory?(entry)
- @newdir = "#{@tempdir}/#{entry}"
- end
- end
- end
-
- # Remember all File objects.
-
- @ioobjects = []
- ObjectSpace::each_object(File) do |obj|
- @ioobjects << obj
- end
-
- at_exit do
-
- # Close all File objects, opened in init.rb .
-
- ObjectSpace::each_object(File) do |obj|
- obj.close if (not obj.closed? and not @ioobjects.include?(obj))
- end
-
- # Remove the temp environment.
-
- Dir.chdir(@olddir)
-
- recursivedelete(@tempfile)
- recursivedelete(@tempdir)
- end
- end
-
- def recursivedelete(entry)
- if FileTest.file?(entry)
- File.delete(entry)
- end
-
- if FileTest.directory?(entry)
- pdir = Dir.pwd
-
- Dir.chdir(entry)
- Dir.new(".").each do |e|
- recursivedelete(e) if not [".", ".."].include?(e)
- end
- Dir.chdir(pdir)
-
- Dir.rmdir(entry)
- end
- end
-
- def oldlocation(file="")
- if block_given?
- pdir = Dir.pwd
-
- Dir.chdir(@olddir)
- res = yield
- Dir.chdir(pdir)
- else
- res = File.expand_path(file, @olddir) if not file.nil?
- end
-
- res
- end
-
- def newlocation(file="")
- if block_given?
- pdir = Dir.pwd
-
- Dir.chdir(@newdir)
- res = yield
- Dir.chdir(pdir)
- else
- res = File.expand_path(file, @newdir) if not file.nil?
- end
-
- res
- end
-
- def self.oldlocation(file="")
- if block_given?
- @@tempspace.oldlocation { yield }
- else
- @@tempspace.oldlocation(file)
- end
- end
-
- def self.newlocation(file="")
- if block_given?
- @@tempspace.newlocation { yield }
- else
- @@tempspace.newlocation(file)
- end
- end
-end
-
-class Extract
- def initialize
- @archive = File.new($0, "rb").read.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
- temp = ENV["TEMP"]
- temp = "/tmp" if temp.nil?
- @tempfile = "#{temp}/tar2rubyscript.f.#{Process.pid}"
- end
-
- def extract
- begin
- File.open(@tempfile, "wb") {|f| f.write @archive}
- File.open(@tempfile, "rb") {|f| Reader.new(f).extract}
- ensure
- File.delete(@tempfile)
- end
- end
-end
-
-class MakeTar
- def initialize
- @archive = File.new($0, "rb").read.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
- @tarfile = $0.gsub(/\.rbw?$/, "") + ".tar"
- end
-
- def extract
- File.open(@tarfile, "wb") {|f| f.write @archive}
- end
-end
-
-def oldlocation(file="")
- if block_given?
- TempSpace.oldlocation { yield }
- else
- TempSpace.oldlocation(file)
- end
-end
-
-def newlocation(file="")
- if block_given?
- TempSpace.newlocation { yield }
- else
- TempSpace.newlocation(file)
- end
-end
-
-if JustExtract
- Extract.new.extract
-else
- if ToTar
- MakeTar.new.extract
- else
- TempSpace.new.extract
-
- $0 = "./init.rb"
-
- newlocation do
- load "init.rb"
- end
- end
-end
Binary files rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/eee.exe and rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/eee.exe differ
Binary files rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/eeew.exe and rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/eeew.exe differ
Binary files rubyscript2exe-0.1.18.tar.gz/rubyscript2exe/tar.exe and rubyscript2exe-0.1.19.tar.gz/rubyscript2exe/tar.exe differ