summaryrefslogtreecommitdiff
path: root/internal/io/fs/catfile.go
blob: ac42fc0c0bc3f5f3bda1ca3aafdbcb4432b16e64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package fs

// CatFile is for reading a whole file.
type CatFile struct {
	readFile
}

// NewCatFile returns a new file catter.
func NewCatFile(filePath string, globID string, serverMessages chan<- string,
	maxLineLength int) CatFile {

	return CatFile{
		readFile: readFile{
			filePath:       filePath,
			globID:         globID,
			serverMessages: serverMessages,
			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
}