def main(argv = ARGV)
if Gem::Version.new(RUBY_VERSION.dup) <
Gem::Version.new(@mininumRubyVersion)
error('tj3app_ruby_version',
'This program requires at least Ruby version ' +
"#{@mininumRubyVersion}!")
end
intHandler = Kernel.trap('INT') do
begin
fatal('tj3app_user_abort', "Aborting on user request!")
rescue RuntimeError
exit 1
end
end
retVal = 0
begin
args = processArguments(argv)
Kernel.trap('INT', intHandler) if $DEBUG
unless @silent
puts "#{AppConfig.softwareName} v#{AppConfig.version} - " +
"#{AppConfig.packageInfo}\n\n" +
"Copyright (c) #{AppConfig.copyright.join(', ')}\n" +
" by #{AppConfig.authors.join(', ')}\n\n" +
"#{AppConfig.license}\n"
end
@rc = RuntimeConfig.new(AppConfig.packageName, @configFile)
begin
MessageHandlerInstance.instance.trapSetup = true
retVal = appMain(args)
MessageHandlerInstance.instance.trapSetup = false
rescue TjRuntimeError
return 1
end
rescue Exception => e
if e.is_a?(SystemExit) || e.is_a?(Interrupt)
$stderr.puts e.backtrace.join("\n") if $DEBUG
1
else
fatal('crash_trap', "#{e}\n#{e.backtrace.join("\n")}\n\n" +
"#{'*' * 79}\nYou have triggered a bug in " +
"#{AppConfig.softwareName} version #{AppConfig.version}!\n" +
"Please see the user manual on how to get this bug fixed!\n" +
"#{'*' * 79}\n")
end
end
retVal
end