go-ipfs-config: config-patch: Inverse profiles
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Łukasz Magiera committed
Dec 16, 2017 at 18:59 UTC
cdb9c2f316ecdb21bc0483e9eab7c564a4424cd8
1 file changed
+43
-55
config/profile.go
+43
-55
@@ -3,12 +3,6 @@ package config
3
// Transformer is a function which takes configuration and applies some filter to it
4
type Transformer func(c *Config) error
5
6
-// Profile applies some set of changes to the configuration
7
-type Profile struct {
8
- Apply Transformer
9
- Revert Transformer
10
-}
11
-
6
// defaultServerFilters has a list of non-routable IPv4 prefixes
7
// according to http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
8
var defaultServerFilters = []string{
@@ -30,60 +24,54 @@ var defaultServerFilters = []string{
24
}
25
26
// Profiles is a map holding configuration transformers. Docs are in docs/config.md
33
-var Profiles = map[string]*Profile{
34
- "server": {
35
- Apply: func(c *Config) error {
36
- c.Addresses.NoAnnounce = appendSingle(c.Addresses.NoAnnounce, defaultServerFilters)
37
- c.Swarm.AddrFilters = appendSingle(c.Swarm.AddrFilters, defaultServerFilters)
38
- c.Discovery.MDNS.Enabled = false
39
- return nil
40
- },
41
- Revert: func(c *Config) error {
42
- c.Addresses.NoAnnounce = deleteEntries(c.Addresses.NoAnnounce, defaultServerFilters)
43
- c.Swarm.AddrFilters = deleteEntries(c.Swarm.AddrFilters, defaultServerFilters)
44
- c.Discovery.MDNS.Enabled = true
45
- return nil
46
- },
27
+var Profiles = map[string]Transformer{
28
+ "server": func(c *Config) error {
29
+ c.Addresses.NoAnnounce = appendSingle(c.Addresses.NoAnnounce, defaultServerFilters)
30
+ c.Swarm.AddrFilters = appendSingle(c.Swarm.AddrFilters, defaultServerFilters)
31
+ c.Discovery.MDNS.Enabled = false
32
+ return nil
33
+ },
34
+ "local-discovery": func(c *Config) error {
35
+ c.Addresses.NoAnnounce = deleteEntries(c.Addresses.NoAnnounce, defaultServerFilters)
36
+ c.Swarm.AddrFilters = deleteEntries(c.Swarm.AddrFilters, defaultServerFilters)
37
+ c.Discovery.MDNS.Enabled = true
38
+ return nil
39
},
48
- "test": {
49
- Apply: func(c *Config) error {
50
- c.Addresses.API = "/ip4/127.0.0.1/tcp/0"
51
- c.Addresses.Gateway = "/ip4/127.0.0.1/tcp/0"
52
- c.Addresses.Swarm = []string{
53
- "/ip4/127.0.0.1/tcp/0",
54
- }
40
+ "test": func(c *Config) error {
41
+ c.Addresses.API = "/ip4/127.0.0.1/tcp/0"
42
+ c.Addresses.Gateway = "/ip4/127.0.0.1/tcp/0"
43
+ c.Addresses.Swarm = []string{
44
+ "/ip4/127.0.0.1/tcp/0",
45
+ }
46
56
- c.Swarm.DisableNatPortMap = true
47
+ c.Swarm.DisableNatPortMap = true
48
58
- c.Bootstrap = []string{}
59
- c.Discovery.MDNS.Enabled = false
60
- return nil
61
- },
62
- Revert: func(c *Config) error {
63
- c.Addresses = addressesConfig()
49
+ c.Bootstrap = []string{}
50
+ c.Discovery.MDNS.Enabled = false
51
+ return nil
52
+ },
53
+ "default-networking": func(c *Config) error {
54
+ c.Addresses = addressesConfig()
55
65
- c.Swarm.DisableNatPortMap = false
66
- c.Discovery.MDNS.Enabled = true
67
- return nil
68
- },
56
+ c.Swarm.DisableNatPortMap = false
57
+ c.Discovery.MDNS.Enabled = true
58
+ return nil
59
+ },
60
+ "badgerds": func(c *Config) error {
61
+ c.Datastore.Spec = map[string]interface{}{
62
+ "type": "measure",
63
+ "prefix": "badger.datastore",
64
+ "child": map[string]interface{}{
65
+ "type": "badgerds",
66
+ "path": "badgerds",
67
+ "syncWrites": true,
68
+ },
69
+ }
70
+ return nil
71
},
70
- "badgerds": {
71
- Apply: func(c *Config) error {
72
- c.Datastore.Spec = map[string]interface{}{
73
- "type": "measure",
74
- "prefix": "badger.datastore",
75
- "child": map[string]interface{}{
76
- "type": "badgerds",
77
- "path": "badgerds",
78
- "syncWrites": true,
79
- },
80
- }
81
- return nil
82
- },
83
- Revert: func(c *Config) error {
84
- c.Datastore.Spec = DefaultDatastoreConfig().Spec
85
- return nil
86
- },
72
+ "default-datastore": func(c *Config) error {
73
+ c.Datastore.Spec = DefaultDatastoreConfig().Spec
74
+ return nil
75
},
76
}
77