summaryrefslogtreecommitdiff
path: root/internal/io/fs/catfile.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/io/fs/catfile.go')
-rw-r--r--internal/io/fs/catfile.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/internal/io/fs/catfile.go b/internal/io/fs/catfile.go
index e4676f3..ac42fc0 100644
--- a/internal/io/fs/catfile.go
+++ b/internal/io/fs/catfile.go
@@ -6,7 +6,9 @@ type CatFile struct {
}
// NewCatFile returns a new file catter.
-func NewCatFile(filePath string, globID string, serverMessages chan<- string) CatFile {
+func NewCatFile(filePath string, globID string, serverMessages chan<- string,
+ maxLineLength int) CatFile {
+
return CatFile{
readFile: readFile{
filePath: filePath,
@@ -15,6 +17,16 @@ func NewCatFile(filePath string, globID string, serverMessages chan<- string) Ca
retry: false,
canSkipLines: false,
seekEOF: false,
+ maxLineLength: maxLineLength,
},
}
}
+
+// NewValidatedCatFile returns a new file catter backed by a rooted open target.
+func NewValidatedCatFile(filePath string, target ValidatedReadTarget, globID string,
+ serverMessages chan<- string, maxLineLength int) CatFile {
+
+ cat := NewCatFile(filePath, globID, serverMessages, maxLineLength)
+ cat.readFile.validatedTarget = &target
+ return cat
+}