cat : back to the simplicity of strings.Join
This commit is contained in:
parent
cade3efe6f
commit
63b27faf29
1 changed files with 3 additions and 15 deletions
18
cat/cat.go
18
cat/cat.go
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue