cat : back to the simplicity of strings.Join

This commit is contained in:
bth 2026-01-21 13:25:40 -08:00
commit 63b27faf29

View file

@ -30,27 +30,15 @@ func initOpts() options {
} }
func cat(files []string) (string, error) { func cat(files []string) (string, error) {
sb := strings.Builder{} ff := make([]string, 0, len(files))
var total int64
for _, f := range files {
stat, err := os.Stat(f)
if err != nil {
return "", fmt.Errorf("stat failed: %w", err)
}
if !stat.IsDir() && stat.Mode().IsRegular() {
total += stat.Size()
}
}
sb.Grow(int(total))
for _, f := range files { for _, f := range files {
dat, err := os.ReadFile(f) dat, err := os.ReadFile(f)
if err != nil { if err != nil {
return "", fmt.Errorf("error opening file: %w", err) return "", fmt.Errorf("error opening file: %w", err)
} }
sb.WriteString(fmt.Sprintf("%s%s", dat, SEPARATOR)) ff = append(ff, string(dat))
} }
return strings.TrimSuffix(sb.String(), SEPARATOR), nil return strings.Join(ff, SEPARATOR), nil
} }
func Cat(args []string) { func Cat(args []string) {