cat : --base
This commit is contained in:
parent
5c1aaeeefc
commit
a3ea15e3eb
1 changed files with 6 additions and 2 deletions
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/brtholomy/um/go/cmd"
|
"github.com/brtholomy/um/go/cmd"
|
||||||
|
|
@ -19,19 +20,22 @@ const (
|
||||||
|
|
||||||
type options struct {
|
type options struct {
|
||||||
Filelist flags.Arg
|
Filelist flags.Arg
|
||||||
|
Base flags.Flag[string]
|
||||||
Help flags.Flag[bool]
|
Help flags.Flag[bool]
|
||||||
}
|
}
|
||||||
|
|
||||||
func initOpts() options {
|
func initOpts() options {
|
||||||
return options{
|
return options{
|
||||||
flags.Arg{"", "filelist. accepts from stdin if not provided"},
|
flags.Arg{"", "filelist. accepts from stdin if not provided"},
|
||||||
|
flags.Flag[string]{"--base", "-b", "", "base directory prepended to files in filelist"},
|
||||||
flags.Flag[bool]{"--help", "-h", false, "show help"},
|
flags.Flag[bool]{"--help", "-h", false, "show help"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func cat(files []string) (string, error) {
|
func cat(files []string, base string) (string, error) {
|
||||||
ff := make([]string, 0, len(files))
|
ff := make([]string, 0, len(files))
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
|
f := filepath.Join(base, f)
|
||||||
dat, err := os.ReadFile(f)
|
dat, err := os.ReadFile(f)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("error opening target file: %w", err)
|
return "", fmt.Errorf("error opening target file: %w", err)
|
||||||
|
|
@ -48,7 +52,7 @@ func Cat(args []string) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("um %s: %s", CMD, err)
|
log.Fatalf("um %s: %s", CMD, err)
|
||||||
}
|
}
|
||||||
s, err := cat(files)
|
s, err := cat(files, opts.Base.Val)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("um %s: %s", CMD, err)
|
log.Fatalf("um %s: %s", CMD, err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue