def exec(*args)
      args.flatten!
      Cany.logger.info args.join(' ')
      unless system(*args)
        raise CommandExecutionFailed.new args
      end
    end
def exec(*args)
      args.flatten!
      Cany.logger.info args.join(' ')
      unless system(*args)
        raise CommandExecutionFailed.new args
      end
    end
API to use inside the recipe

 @api public
 Run a command inside the build directory. In most cases it is not needed to call this method
 directly. Look at the other helper methods.

 The method expects as arguments the program name and additional parameters for the program.
 The arguments can be group with arguments, but must not:
 @example
   exec 'echo', %w(a b)
   exec ['echo', 'a', 'b']
   exec 'echo', 'a', 'b'
 @raise [CommandExecutionFailed] if the executed program exists with a
   non-zero exit code.