Skip to content

Commit

Permalink
fix: Add workaround for broken Open implementation in `CacheOnReadF…
Browse files Browse the repository at this point in the history
  • Loading branch information
pojntfx committed Dec 25, 2021
1 parent 41a3383 commit f793dca
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
1 change: 1 addition & 0 deletions cmd/stfs/cmd/serve_ftp.go
Expand Up @@ -203,6 +203,7 @@ var serveFTPCmd = &cobra.Command{
viper.GetString(cacheWriteFlag),
)
},
viper.GetString(cacheFileSystemFlag) != config.NoneKey,

logger.PrintHeader,
)
Expand Down
5 changes: 3 additions & 2 deletions cmd/stfs/cmd/serve_http.go
Expand Up @@ -125,8 +125,9 @@ var serveHTTPCmd = &cobra.Command{
Metadata: metadataPersister,
},

"", // We never write
nil, // We never write
"", // We never write
nil, // We never write
false, // We never write

logger.PrintHeader,
)
Expand Down
27 changes: 24 additions & 3 deletions internal/fs/filesystem.go
Expand Up @@ -32,6 +32,7 @@ type FileSystem struct {

compressionLevel string
getFileBuffer func() (WriteCache, func() error, error)
enableHacks bool

onHeader func(hdr *models.Header)
}
Expand All @@ -44,6 +45,7 @@ func NewFileSystem(

compressionLevel string,
getFileBuffer func() (WriteCache, func() error, error),
enableHacks bool,

onHeader func(hdr *models.Header),
) afero.Fs {
Expand All @@ -55,6 +57,7 @@ func NewFileSystem(

compressionLevel: compressionLevel,
getFileBuffer: getFileBuffer,
enableHacks: enableHacks,

onHeader: onHeader,
}
Expand Down Expand Up @@ -185,10 +188,28 @@ func (f *FileSystem) Open(name string) (afero.File, error) {
)
if err != nil {
if err == sql.ErrNoRows {
return nil, os.ErrNotExist
// See https://github.com/spf13/afero/issues/193
if f.enableHacks {
if err := f.mknode(false, name, os.ModePerm); err != nil {
return nil, err
}

hdr, err = inventory.Stat(
f.metadata,

name,

f.onHeader,
)
if err != nil {
return nil, err
}
} else {
return nil, os.ErrNotExist
}
} else {
panic(err)
}

panic(err)
}

return NewFile(
Expand Down

0 comments on commit f793dca

Please sign in to comment.