From 54956f0529053fbf7a10c44419d97836e7817a6e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 29 Dec 2014 12:15:22 +0000 Subject: source/splitfx: fail gracefully on missing files We cannot afford to break the entire player because somebody enqueued a non-existent file (or enqueued and later renamed it). --- lib/dtas/source/splitfx.rb | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'lib/dtas/source/splitfx.rb') diff --git a/lib/dtas/source/splitfx.rb b/lib/dtas/source/splitfx.rb index 2b10e5c..5340f3d 100644 --- a/lib/dtas/source/splitfx.rb +++ b/lib/dtas/source/splitfx.rb @@ -33,23 +33,22 @@ class DTAS::Source::SplitFX < DTAS::Source::Sox # :nodoc: end sfx = DTAS::SplitFX.new - begin - Dir.chdir(File.dirname(ymlfile)) do # ugh - @ymlhash = YAML.load(buf) - @ymlhash['tracks'] ||= [ "t 0 default" ] - sfx.import(@ymlhash) - sfx.infile.replace(File.expand_path(sfx.infile)) - end - @splitfx = sfx - rescue - return false + Dir.chdir(File.dirname(ymlfile)) do # ugh + @ymlhash = YAML.load(buf) + @ymlhash['tracks'] ||= [ "t 0 default" ] + sfx.import(@ymlhash) + sfx.infile.replace(File.expand_path(sfx.infile)) end + @splitfx = sfx @infile = ymlfile sox = @sox.try(sfx.infile, offset) or return false rv = source_file_dup(ymlfile, offset) rv.sox = sox rv.env = sfx.env rv + rescue => e + warn "#{e.message} (#{e.class})" + false end def __load_comments -- cgit v1.2.3-24-ge0c7