#!/usr/bin/env ruby

# Strip file on local folder instead of a Virtualbox shared folder
# to work around this bug: https://www.virtualbox.org/ticket/8463

require 'tempfile'
require 'fileutils'

strip = "#{File.basename($0)}.bin"

files = ARGV.reject{|f| f=~/^-/ }.map do |arg|
  tmp = Tempfile.new 'strip'
  FileUtils.cp arg, tmp.path
  [tmp, arg]
end

options = ARGV.select{|f| f=~/^-/ } + files.map{|t,o| t.path }

unless system( strip, *options )
  puts "unable to execute #{strip}"
  exit 127
end
code = $?.exitstatus

files.each do |tmp, orig|
  FileUtils.cp tmp.path, orig
end

exit code