def shell_eval(opts={})
      should_escape = opts[:escape] != false
      command = yield(should_escape ? shell.escape(path) : path)
      run command, :escape => should_escape
    end
def shell_eval(opts={})
      should_escape = opts[:escape] != false
      command = yield(should_escape ? shell.escape(path) : path)
      run command, :escape => should_escape
    end
Analyse the content using a shell command
 @param opts [Hash] passing :escape => false doesn't shell-escape each word
 @example
   content.shell_eval do |path|
     "file --mime-type #{path}"
   end
   # ===> "beach.jpg: image/jpeg"