about summary refs log tree commit homepage
path: root/lib/dtas.rb
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-05-19 09:14:23 +0000
committerEric Wong <e@80x24.org>2015-05-19 09:16:16 +0000
commitc02f0b8182b35df1a318418bbd0036c00be93b5c (patch)
treecf24d9e3c47ee3e3dfbe2ae697fa92b3c9f53079 /lib/dtas.rb
parent7b47191aa4c88b3daa4c980013f0047cb7ae7f6d (diff)
downloaddtas-c02f0b8182b35df1a318418bbd0036c00be93b5c.tar.gz
Since writing nested shell commands inside YAML is subject to all
sorts of strange quoting rules, encourage users to rely on external
scripts which the YAML file refers to instead.  These scripts can be
written in any reasonable scripting language capable of executing
other commands.

This allows transparently monitoring things such as `my-script.rb'
in the below example when playing my-splitfx.yml via dtas-player:

  --------------------- my-splitfx.yml -----------------------
  infile: input.flac
  command: $INDIR/my-script.rb "$INFILE"
  ...

  --------------------- my-script.rb --------------------------
  #!/usr/bin/ruby
  require 'shellwords'
  infile = ARGV.shift
  ch = %W(sox #{infile} -p).concat((ENV['TRIMFX'] || '').shellsplit)
  fx = %W(highpass 25 gain 9)
  l = ch.dup.concat(%W(remix 1v1)).concat(fx).concat(%w(contrast 30))
  r = ch.dup.concat(%W(remix 2v1)).concat(fx).concat(%w(contrast 0))
  cmd = %W(sox -M |#{l.shelljoin} |#{r.shelljoin})
  cmd.concat((ENV['SOXFMT'] || '-p').shellsplit)
  cmd.concat(%w(- stats))
  warn cmd.inspect
  exec *cmd
Diffstat (limited to 'lib/dtas.rb')
0 files changed, 0 insertions, 0 deletions