X-Git-Url: http://git.code-monkey.de/?p=redact.git;a=blobdiff_plain;f=lib%2Fredact%2Fapp.rb;h=1d51bf74ae531f534c546f3ca250de5911290515;hp=d2b192390297aba44ee86305363bba4d99109c8c;hb=5509b434e26fd1a8c9c3990154a881583b81d2a6;hpb=8e136679c89b98b0de2f34e27015a73bf751bd0f diff --git a/lib/redact/app.rb b/lib/redact/app.rb index d2b1923..1d51bf7 100644 --- a/lib/redact/app.rb +++ b/lib/redact/app.rb @@ -1,6 +1,4 @@ #-- -# $Id: app.rb 2 2005-03-26 19:16:37Z tilman $ -# # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # # Permission is hereby granted, free of charge, to any person obtaining @@ -32,20 +30,30 @@ require "optparse" SCRIPT_LINES__ = {} +class OpenStruct + def clear + @table = {} + end +end + module Redact + OPTIONS = OpenStruct.new + class App + attr_reader :options + def initialize(args) @filename = nil - @options = OpenStruct.new + OPTIONS.clear @option_parser = parse_args(args) - @options.input = args.first - if @options.input.nil? + OPTIONS.input = args.first + if OPTIONS.input.nil? puts @option_parser.help exit end - @options.output ||= @options.input.sub(/.[^.]+$/, ".edj") + OPTIONS.output ||= OPTIONS.input.sub(/.[^.]+$/, ".edj") end def run @@ -53,12 +61,12 @@ module Redact SCRIPT_LINES__.clear begin - load @options.input + load OPTIONS.input rescue LoadError - raise("Cannot load '#{@options.input}'") + raise("Cannot load '#{OPTIONS.input}'") end - @filename = Pathname.new(@options.input).cleanpath.to_s + @filename = Pathname.new(OPTIONS.input).cleanpath.to_s if EDJE.collections.empty? raise("No collections found") @@ -66,15 +74,20 @@ module Redact amx = compile_embryo - Eet::File.open(@options.output, "w") do |ef| - dump_amx(amx, ef) - - dump_header(ef) - dump_collections(ef) - dump_fonts(ef) - dump_images(ef) - dump_source(ef) - dump_fontmap(ef) + begin + Eet::File.open(OPTIONS.output, "w") do |ef| + dump_amx(amx, ef) + + dump_header(ef) + dump_collections(ef) + dump_fonts(ef) + dump_images(ef) + dump_source(ef) + dump_fontmap(ef) + end + rescue Exception + File.rm_f(OPTIONS.output) + raise end end @@ -88,17 +101,17 @@ module Redact o.on("-o", "--output OUTPUT_FILE", "Write Edje to OUTPUT_FILE") do |file| - @options.output = file + OPTIONS.output = file end o.on("--image_dir IMAGE_DIR", "Add IMAGE_DIR to the image lookup path") do |dir| - @options.image_dir = dir + OPTIONS.image_dir = dir end o.on("--font_dir FONT_DIR", "Add FONT_DIR to the font lookup path") do |dir| - @options.font_dir = dir + OPTIONS.font_dir = dir end o.separator "" @@ -110,11 +123,7 @@ module Redact end o.on_tail("--version", "Show version") do - puts <