code: func HasFact(fact string, operator string, value string, file string, log *logrus.Entry) (bool, error) {
  	j, found, err := GetFact(fact, file, log)
  	if err != nil {
  		return false, err
  	}
  
  	if !found.Exists() {
  		return false, nil
  	}
  
  	switch operator {
  	case "==":
  		return eqMatch(found, value, &j)
  	case "=~":
  		return reMatch(found, value, &j)
  	case "<=":
  		return leMatch(found, value, &j)
  	case ">=":
  		return geMatch(found, value, &j)
  	case "<":
  		return ltMatch(found, value, &j)
  	case ">":
  		return gtMatch(found, value, &j)
  	case "!=":
  		return neMatch(found, value, &j)
  	default:
  		return false, fmt.Errorf("Unknown fact matching operator %s while looking for fact %s", operator, fact)
  	}
  }
docs: // HasFact evaluates the expression against facts in the file