github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/downloader/util/utils.go (about) 1 package util 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/filecoin-project/bacalhau/pkg/downloader" 8 "github.com/filecoin-project/bacalhau/pkg/downloader/estuary" 9 "github.com/filecoin-project/bacalhau/pkg/downloader/ipfs" 10 "github.com/filecoin-project/bacalhau/pkg/model" 11 "github.com/filecoin-project/bacalhau/pkg/system" 12 ) 13 14 func NewDownloadSettings() *model.DownloaderSettings { 15 settings := model.DownloaderSettings{ 16 Timeout: model.DefaultIPFSTimeout, 17 // we leave this blank so the CLI will auto-create a job folder in pwd 18 OutputDir: "", 19 IPFSSwarmAddrs: "", 20 } 21 if os.Getenv("BACALHAU_IPFS_SWARM_ADDRESSES") != "" { 22 settings.IPFSSwarmAddrs = os.Getenv("BACALHAU_IPFS_SWARM_ADDRESSES") 23 } else { 24 settings.IPFSSwarmAddrs = strings.Join(system.Envs[system.GetEnvironment()].IPFSSwarmAddresses, ",") 25 } 26 return &settings 27 } 28 29 func NewStandardDownloaders( 30 cm *system.CleanupManager, 31 settings *model.DownloaderSettings) downloader.DownloaderProvider { 32 ipfsDownloader := ipfs.NewIPFSDownloader(cm, settings) 33 estuaryDownloader := estuary.NewEstuaryDownloader(cm, settings) 34 35 return model.NewMappedProvider(map[model.StorageSourceType]downloader.Downloader{ 36 model.StorageSourceIPFS: ipfsDownloader, 37 model.StorageSourceEstuary: estuaryDownloader, 38 }) 39 }