|  | package notifier | 
|  |  | 
|  | import "fmt" | 
|  |  | 
|  | const ( | 
|  | // Message filters. | 
|  | FILTER_SILENT Filter = iota | 
|  | FILTER_ERROR | 
|  | FILTER_WARNING | 
|  | FILTER_INFO | 
|  | FILTER_DEBUG | 
|  | ) | 
|  |  | 
|  | const ( | 
|  | // Severity of messages | 
|  | SEVERITY_ERROR Severity = iota | 
|  | SEVERITY_WARNING | 
|  | SEVERITY_INFO | 
|  | SEVERITY_DEBUG | 
|  | ) | 
|  |  | 
|  | type Filter int | 
|  |  | 
|  | func (f Filter) String() string { | 
|  | switch f { | 
|  | case FILTER_SILENT: | 
|  | return "silent" | 
|  | case FILTER_ERROR: | 
|  | return "error" | 
|  | case FILTER_WARNING: | 
|  | return "warning" | 
|  | case FILTER_INFO: | 
|  | return "info" | 
|  | case FILTER_DEBUG: | 
|  | return "debug" | 
|  | default: | 
|  | return "UNKNOWN!" | 
|  | } | 
|  | } | 
|  |  | 
|  | func (f Filter) ShouldSend(t Severity) bool { | 
|  | return int(t) < int(f) | 
|  | } | 
|  |  | 
|  | type Severity int | 
|  |  | 
|  | func (s Severity) String() string { | 
|  | switch s { | 
|  | case SEVERITY_ERROR: | 
|  | return "error" | 
|  | case SEVERITY_WARNING: | 
|  | return "warning" | 
|  | case SEVERITY_INFO: | 
|  | return "info" | 
|  | case SEVERITY_DEBUG: | 
|  | return "debug" | 
|  | default: | 
|  | return "UNKNOWN!" | 
|  | } | 
|  | } | 
|  |  | 
|  | func ParseFilter(f string) (Filter, error) { | 
|  | switch f { | 
|  | case FILTER_SILENT.String(): | 
|  | return FILTER_SILENT, nil | 
|  | case FILTER_ERROR.String(): | 
|  | return FILTER_ERROR, nil | 
|  | case FILTER_WARNING.String(): | 
|  | return FILTER_WARNING, nil | 
|  | case FILTER_INFO.String(): | 
|  | return FILTER_INFO, nil | 
|  | case FILTER_DEBUG.String(), "": | 
|  | return FILTER_DEBUG, nil | 
|  | default: | 
|  | return FILTER_SILENT, fmt.Errorf("Unknown filter %q", f) | 
|  | } | 
|  | } |