code: func (h *Hook) ExtractCommandArguments(headers, query, payload *map[string]interface{}) ([]string, []error) {
  	var args = make([]string, 0)
  	var errors = make([]error, 0)
  
  	args = append(args, h.ExecuteCommand)
  
  	for i := range h.PassArgumentsToCommand {
  		if arg, ok := h.PassArgumentsToCommand[i].Get(headers, query, payload); ok {
  			args = append(args, arg)
  		} else {
  			args = append(args, "")
  			errors = append(errors, &ArgumentError{h.PassArgumentsToCommand[i]})
  		}
  	}
  
  	if len(errors) > 0 {
  		return args, errors
  	}
  
  	return args, nil
  }
docs: // ExtractCommandArguments creates a list of arguments, based on the
  // PassArgumentsToCommand property that is ready to be used with exec.Command()