#!/usr/bin/env ruby

require 'yaml'
require 'open3'

ARGV.each do |arg|

  Open3.popen3('tagutil', arg) do |_, pstdout, pstderr|
    $s = pstdout.read
    $e = pstderr.read
  end
  yaml = YAML.load($s)

  if not yaml
    STDERR.puts($e)
  else
    stripped = Array.new
    yaml.each do |hash|
      hash.each do |key, val|
        newval = if val.respond_to?(:strip) then val.to_s.strip else val end
        stripped << { key => newval }
      end
    end

    Open3.popen3('tagutil', 'load:-', arg) do |pstdin, pstdout, pstderr|
      pstdin << stripped.to_yaml
      pstdin.close
      STDERR.puts($e) unless ($e = pstderr.read).strip.empty?
    end
  end
end
