From: Dan Dennedy Date: Wed, 5 Jun 2013 02:36:00 +0000 (-0700) Subject: Add exception handling around YAML parsing in metadata.rb. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=fde84b344929954e8f7b573f4539da5815371652;p=mlt Add exception handling around YAML parsing in metadata.rb. --- diff --git a/src/swig/ruby/build b/src/swig/ruby/build index 6c6e9cab..3f372b07 100755 --- a/src/swig/ruby/build +++ b/src/swig/ruby/build @@ -6,7 +6,7 @@ if ARGV.shift == 'clean' end system( "ln -sf ../mlt.i" ) system( "swig -c++ -ruby -I../../mlt++ -I../.. mlt.i" ) -$CFLAGS += " -I../.. " + ENV['CXXFLAGS'] +$CFLAGS += " -I../.. " + (ENV.has_key?('CXXFLAGS')? ENV['CXXFLAGS'] : '') $LDFLAGS += " -L../../mlt++ -lmlt++" create_makefile('mlt') system( "make" ) diff --git a/src/swig/ruby/metadata.rb b/src/swig/ruby/metadata.rb index 9559b96a..596bcce6 100755 --- a/src/swig/ruby/metadata.rb +++ b/src/swig/ruby/metadata.rb @@ -91,15 +91,19 @@ def output(mlt_type, services, type_title) if meta.is_valid filename = type_title + name.capitalize.gsub('.', '-') puts "Processing #{filename}" - yml = YAML.load(meta.serialise_yaml) - if yml - File.open(filename + '.txt', 'w') do |f| - f.puts $processor.result(binding) + begin + yml = YAML.load(meta.serialise_yaml) + if yml + File.open(filename + '.txt', 'w') do |f| + f.puts $processor.result(binding) + end + else + puts "Failed to write file for #{filename}" end - else - puts "Failed to write file for #{filename}" + index.puts " * [[#{filename}][#{name}]]: #{meta.get('title')}\n" + rescue ArgumentError + puts "Failed to parse YAML for #{filename}" end - index.puts " * [[#{filename}][#{name}]]: #{meta.get('title')}\n" end end index.puts ''