X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=lib%2Fredact%2Fapp.rb;h=dc9ef9b52b4d52bb8fb8697e0a0cd1f26c452eeb;hb=f92d28bb16746dbb4b23d3fc127e088365ba087a;hp=de666280863078905bb9af53c69b31c1b9d34338;hpb=2c25c90e2aaf57a7508a7988f58b2784d5071a7e;p=redact.git diff --git a/lib/redact/app.rb b/lib/redact/app.rb index de66628..dc9ef9b 100644 --- a/lib/redact/app.rb +++ b/lib/redact/app.rb @@ -1,5 +1,5 @@ #-- -# $Id: app.rb 1 2005-03-26 01:32:38Z tilman $ +# $Id: app.rb 39 2005-04-28 21:08:11Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -25,6 +25,7 @@ require "redact/redact.rb" require "redact/source.rb" require "ftools" +require "tempfile" require "pathname" require "ostruct" require "optparse" @@ -109,11 +110,7 @@ module Redact end o.on_tail("--version", "Show version") do - puts <" - dump_sma(tf, col) - tf.flush + Tempfile.open("redact_col#{col.id}.sma") do |tf_in| + tf_in.puts "#include " + dump_sma(tf_in, col) + tf_in.flush - out = "/tmp/redact.amx" - File.rm_f(out) + Tempfile.open("redact_col#{col.id}.amx") do |tf_out| + incl = `edje-config --datadir`.strip - incl = `edje-config --datadir`.strip - c = "embryo_cc " + - "-i #{incl}/include " + - "-o #{out} #{tf.path}" - system(c) + c = "embryo_cc " + + "-i #{incl}/include " + + "-o #{tf_out.path} #{tf_in.path}" + system(c) + unless (0..1).include?($?.exitstatus) + raise("Cannot compile Embryo code") + end - ret[col.id] = IO.read(out) - File.rm_f(out) - File.unlink(tf.path) + ret[col.id] = tf_out.read + end end end @@ -209,7 +207,7 @@ EOT method = (sane == @filename) ? :unshift : :push s.send(method, SourceFile.new(sane, value.join)) - # include files that are with File.read, too + # include files that are read with File.read, too value.join.grep(/File\.read\(\"(.+)\"\)/) do sane = Pathname.new($1).cleanpath.to_s s << SourceFile.new(sane, File.read(sane))