go-ipfs-config: Merge pull request #128 from ipfs/feat/migration-config

Add config for downloading repo migrations
This commit is contained in:
Steven Allen 2021-05-03 10:50:38 -07:00 committed by GitHub
commit f7b64b3d95
4 changed files with 56 additions and 0 deletions

View File

@ -29,6 +29,7 @@ type Config struct {
Pubsub PubsubConfig
Peering Peering
DNS DNS
Migration Migration
Provider Provider
Reprovider Reprovider

View File

@ -92,6 +92,10 @@ func InitWithIdentity(identity Identity) (*Config, error) {
DNS: DNS{
Resolvers: map[string]string{},
},
Migration: Migration{
DownloadSources: []string{},
Keep: "",
},
}
return conf, nil

17
config/migration.go Normal file
View File

@ -0,0 +1,17 @@
package config
const DefaultMigrationKeep = "cache"
var DefaultMigrationDownloadSources = []string{"HTTPS", "IPFS"}
// Migration configures how migrations are downloaded and if the downloads are
// added to IPFS locally
type Migration struct {
// Sources in order of preference, where "IPFS" means use IPFS and "HTTPS"
// means use default gateways. Any other values are interpreted as
// hostnames for custom gateways. Empty list means "use default sources".
DownloadSources []string
// Whether or not to keep the migration after downloading it.
// Options are "discard", "cache", "pin". Empty string for default.
Keep string
}

34
config/migration_test.go Normal file
View File

@ -0,0 +1,34 @@
package config
import (
"encoding/json"
"testing"
)
func TestMigrationDecode(t *testing.T) {
str := `
{
"DownloadSources": ["IPFS", "HTTP", "127.0.0.1"],
"Keep": "cache"
}
`
var cfg Migration
if err := json.Unmarshal([]byte(str), &cfg); err != nil {
t.Errorf("failed while unmarshalling migration struct: %s", err)
}
if len(cfg.DownloadSources) != 3 {
t.Fatal("wrong number of DownloadSources")
}
expect := []string{"IPFS", "HTTP", "127.0.0.1"}
for i := range expect {
if cfg.DownloadSources[i] != expect[i] {
t.Errorf("wrong DownloadSource at %d", i)
}
}
if cfg.Keep != "cache" {
t.Error("wrong value for Keep")
}
}