fix: do not read whole file on listings
License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com>pull/607/head
parent
c830b80269
commit
28b326ab1d
|
@ -76,7 +76,7 @@ func NewFileInfo(opts FileOptions) (*FileInfo, error) {
|
||||||
return file, file.readListing(opts.Checker)
|
return file, file.readListing(opts.Checker)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = file.detectType(opts.Modify)
|
err = file.detectType(opts.Modify, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ func (i *FileInfo) Checksum(algo string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *FileInfo) detectType(modify bool) error {
|
func (i *FileInfo) detectType(modify, saveContent bool) error {
|
||||||
reader, err := i.Fs.Open(i.Path)
|
reader, err := i.Fs.Open(i.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -160,18 +160,21 @@ func (i *FileInfo) detectType(modify bool) error {
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
i.Type = "text"
|
i.Type = "text"
|
||||||
|
|
||||||
|
if !modify {
|
||||||
|
i.Type = "textImmutable"
|
||||||
|
}
|
||||||
|
|
||||||
|
if saveContent {
|
||||||
afs := &afero.Afero{Fs: i.Fs}
|
afs := &afero.Afero{Fs: i.Fs}
|
||||||
content, err := afs.ReadFile(i.Path)
|
content, err := afs.ReadFile(i.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !modify {
|
|
||||||
i.Type = "textImmutable"
|
|
||||||
}
|
|
||||||
|
|
||||||
i.Content = string(content)
|
i.Content = string(content)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -238,7 +241,7 @@ func (i *FileInfo) readListing(checker rules.Checker) error {
|
||||||
} else {
|
} else {
|
||||||
listing.NumFiles++
|
listing.NumFiles++
|
||||||
|
|
||||||
err := file.detectType(true)
|
err := file.detectType(true, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue