]> git.sesse.net Git - mlt/commitdiff
Add exception handling around YAML parsing in metadata.rb.
authorDan Dennedy <dan@dennedy.org>
Wed, 5 Jun 2013 02:36:00 +0000 (19:36 -0700)
committerDan Dennedy <dan@dennedy.org>
Wed, 5 Jun 2013 02:36:00 +0000 (19:36 -0700)
src/swig/ruby/build
src/swig/ruby/metadata.rb

index 6c6e9cab49531e397178bf2fcd137ca2b897c776..3f372b070815b08c49361028cc69da9eddee0442 100755 (executable)
@@ -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" )
index 9559b96aabc8af7ee0af350700acd9256dfcb887..596bcce65272dc16974147cc9bfff29943c0ec4f 100755 (executable)
@@ -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 '</noautolink>'