storj/storagenode/pieces/lazyfilewalker/config.go

38 lines
1.3 KiB
Go
Raw Normal View History

// Copyright (C) 2023 Storj Labs, Inc.
// See LICENSE for copying information.
package lazyfilewalker
import (
"storj.io/storj/storagenode/blobstore/filestore"
)
// Config is the config for lazyfilewalker process.
type Config struct {
// TODO: just trying to match the names in storagenodedb.Config. Change these to be more descriptive.
Storage string `help:"path to the storage database directory"`
Info string `help:"path to the piecestore db"`
Info2 string `help:"path to the info database"`
Driver string `help:"database driver to use" default:"sqlite3"`
Pieces string `help:"path to store pieces in"`
Filestore filestore.Config
}
// Args returns the flags to be passed lazyfilewalker process.
func (config *Config) Args() []string {
// TODO: of course, we shouldn't hardcode this.
return []string{
"--storage", config.Storage,
"--info", config.Info,
"--info2", config.Info2,
"--pieces", config.Pieces,
"--driver", config.Driver,
"--filestore.write-buffer-size", config.Filestore.WriteBufferSize.String(),
// set log output to stderr, so it doesn't interfere with the output of the command
"--log.output", "stderr",
// use the json formatter in the subprocess, so we could read lines and re-log them in the main process
// with all the fields intact.
"--log.encoding", "json",
}
}