From 9183c38754d76fcd778965350046738557d13722 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 24 Jan 2022 03:52:34 +0000 Subject: splitfx: add --filter option to limit match to comments This can allow filtering for tracks with a given comment declared via the ".#{COMMENT}" mechanism or the track title. If no prefix is given (before the '='), then all comment values are matched. --- lib/dtas/splitfx.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/dtas/splitfx.rb') diff --git a/lib/dtas/splitfx.rb b/lib/dtas/splitfx.rb index 1ce2007..696b9ce 100644 --- a/lib/dtas/splitfx.rb +++ b/lib/dtas/splitfx.rb @@ -360,6 +360,14 @@ class DTAS::SplitFX # :nodoc: fails = [] tracks = @tracks.dup + (opts[:filter] || []).each do |re| + field, val = re.split(/=/, 2) + if val + tracks.delete_if { |t| (t.comments[field] || '') !~ /#{val}/ } + else + tracks.delete_if { |t| t.comments.values.grep(/#{re}/).empty? } + end + end pids = {} jobs = opts[:jobs] || tracks.size # jobs == nil => everything at once if opts[:sox_pipe] -- cgit v1.2.3-24-ge0c7