Files
CrowsNest/internal/files/filetype.go
T

53 lines
709 B
Go
Raw Normal View History

2025-05-14 22:00:38 -04:00
package files
2026-04-07 09:09:12 -04:00
import "strings"
2025-05-14 22:00:38 -04:00
type FileType int32
const (
JSON FileType = iota
XML
YAML
TEXT
2026-04-07 09:09:12 -04:00
GREPPABLE
2025-05-16 15:33:29 -04:00
UNKNOWN
2025-05-14 22:00:38 -04:00
)
func GetFileType(filetype string) FileType {
2026-04-07 09:09:12 -04:00
switch strings.ToLower(strings.TrimSpace(filetype)) {
2025-05-14 22:00:38 -04:00
case "json":
return JSON
case "xml":
return XML
case "yaml":
return YAML
2026-04-07 09:09:12 -04:00
case "txt", "text":
2025-05-14 22:00:38 -04:00
return TEXT
2026-04-07 09:09:12 -04:00
case "grep", "greppable":
return GREPPABLE
2025-05-14 22:00:38 -04:00
default:
return JSON
}
}
func (ft FileType) String() string {
switch ft {
case JSON:
return "json"
case XML:
return "xml"
case YAML:
return "yaml"
case TEXT:
return "txt"
2026-04-07 09:09:12 -04:00
case GREPPABLE:
return "grep"
2025-05-14 22:00:38 -04:00
default:
return "json"
}
}
func (ft FileType) Extension() string {
return "." + ft.String()
}