@cryptotaxi247 / kubo / commits / cdb9c2f31

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