grimoir/file_io.go
2026-07-04 13:04:33 +03:00

54 lines
973 B
Go
Executable file

package main
import (
"os"
"path/filepath"
"strings"
)
// LoadFile загружает содержимое файла
func LoadFile(path string) (string, error) {
data, err := os.ReadFile(path)
if err != nil {
if os.IsNotExist(err) {
return "", nil // Новый файл
}
return "", err
}
return string(data), nil
}
// DetectFileType определяет тип файла по расширению
func DetectFileType(path string) string {
ext := strings.TrimPrefix(filepath.Ext(path), ".")
ext = strings.ToLower(ext)
switch ext {
case "md", "markdown":
return "md"
case "txt":
return "txt"
case "go":
return "go"
case "py":
return "py"
case "js", "mjs", "cjs":
return "js"
case "ts", "tsx":
return "ts"
case "rs":
return "rs"
case "c", "h":
return "c"
case "cpp", "cc", "cxx", "hpp":
return "cpp"
case "java":
return "java"
case "sql":
return "sql"
case "sh", "bash":
return "sh"
default:
return "txt"
}
}