docs: def facts(puppet=False):
      '''
      Run facter and return the results
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' puppet.facts
      '''
      ret = {}
      opt_puppet = '--puppet' if puppet else ''
      cmd_ret = __salt__['cmd.run_all']('facter {0}'.format(opt_puppet))
  
      if cmd_ret['retcode'] != 0:
          raise CommandExecutionError(cmd_ret['stderr'])
  
      output = cmd_ret['stdout']
  
      # Loop over the facter output and  properly
      # parse it into a nice dictionary for using
      # elsewhere
      for line in output.splitlines():
          if not line:
              continue
          fact, value = _format_fact(line)
          if not fact:
              continue
          ret[fact] = value
      return ret