本文整理汇总了Golang中github.com/ipfs/go-ipfs/repo.Repo.SetConfig方法的典型用法代码示例。如果您正苦于以下问题:Golang Repo.SetConfig方法的具体用法?Golang Repo.SetConfig怎么用?Golang Repo.SetConfig使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/ipfs/go-ipfs/repo.Repo
的用法示例。
在下文中一共展示了Repo.SetConfig方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: bootstrapRemove
func bootstrapRemove(r repo.Repo, cfg *config.Config, toRemove []config.BootstrapPeer) ([]config.BootstrapPeer, error) {
removed := make([]config.BootstrapPeer, 0, len(toRemove))
keep := make([]config.BootstrapPeer, 0, len(cfg.Bootstrap))
peers, err := cfg.BootstrapPeers()
if err != nil {
return nil, err
}
for _, peer := range peers {
found := false
for _, peer2 := range toRemove {
if peer.Equal(peer2) {
found = true
removed = append(removed, peer)
break
}
}
if !found {
keep = append(keep, peer)
}
}
cfg.SetBootstrapPeers(keep)
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return removed, nil
}
示例2: filtersRemove
func filtersRemove(r repo.Repo, cfg *config.Config, toRemoveFilters []string) ([]string, error) {
removed := make([]string, 0, len(toRemoveFilters))
keep := make([]string, 0, len(cfg.Swarm.AddrFilters))
oldFilters := cfg.Swarm.AddrFilters
for _, oldFilter := range oldFilters {
found := false
for _, toRemoveFilter := range toRemoveFilters {
if oldFilter == toRemoveFilter {
found = true
removed = append(removed, toRemoveFilter)
break
}
}
if !found {
keep = append(keep, oldFilter)
}
}
cfg.Swarm.AddrFilters = keep
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return removed, nil
}
示例3: filtersAdd
func filtersAdd(r repo.Repo, cfg *config.Config, filters []string) ([]string, error) {
addedMap := map[string]struct{}{}
addedList := make([]string, 0, len(filters))
// re-add cfg swarm filters to rm dupes
oldFilters := cfg.Swarm.AddrFilters
cfg.Swarm.AddrFilters = nil
// add new filters
for _, filter := range filters {
if _, found := addedMap[filter]; found {
continue
}
cfg.Swarm.AddrFilters = append(cfg.Swarm.AddrFilters, filter)
addedList = append(addedList, filter)
addedMap[filter] = struct{}{}
}
// add back original filters. in this order so that we output them.
for _, filter := range oldFilters {
if _, found := addedMap[filter]; found {
continue
}
cfg.Swarm.AddrFilters = append(cfg.Swarm.AddrFilters, filter)
addedMap[filter] = struct{}{}
}
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return addedList, nil
}
示例4: replaceConfig
func replaceConfig(r repo.Repo, file io.Reader) error {
var cfg config.Config
if err := json.NewDecoder(file).Decode(&cfg); err != nil {
return errors.New("Failed to decode file as config")
}
return r.SetConfig(&cfg)
}
示例5: filtersRemoveAll
func filtersRemoveAll(r repo.Repo, cfg *config.Config) ([]string, error) {
removed := cfg.Swarm.AddrFilters
cfg.Swarm.AddrFilters = nil
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return removed, nil
}
示例6: bootstrapRemoveAll
func bootstrapRemoveAll(r repo.Repo, cfg *config.Config) ([]config.BootstrapPeer, error) {
removed, err := cfg.BootstrapPeers()
if err != nil {
return nil, err
}
cfg.Bootstrap = nil
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return removed, nil
}
示例7: replaceConfig
func replaceConfig(r repo.Repo, file io.Reader) error {
var cfg config.Config
if err := json.NewDecoder(file).Decode(&cfg); err != nil {
return errors.New("failed to decode file as config")
}
if len(cfg.Identity.PrivKey) != 0 {
return errors.New("setting private key with API is not supported")
}
keyF, err := getConfig(r, "Identity.PrivKey")
if err != nil {
return fmt.Errorf("Failed to get PrivKey")
}
pkstr, ok := keyF.Value.(string)
if !ok {
return fmt.Errorf("private key in config was not a string")
}
cfg.Identity.PrivKey = pkstr
return r.SetConfig(&cfg)
}
示例8: bootstrapAdd
func bootstrapAdd(r repo.Repo, cfg *config.Config, peers []config.BootstrapPeer) ([]config.BootstrapPeer, error) {
addedMap := map[string]struct{}{}
addedList := make([]config.BootstrapPeer, 0, len(peers))
// re-add cfg bootstrap peers to rm dupes
bpeers := cfg.Bootstrap
cfg.Bootstrap = nil
// add new peers
for _, peer := range peers {
s := peer.String()
if _, found := addedMap[s]; found {
continue
}
cfg.Bootstrap = append(cfg.Bootstrap, s)
addedList = append(addedList, peer)
addedMap[s] = struct{}{}
}
// add back original peers. in this order so that we output them.
for _, s := range bpeers {
if _, found := addedMap[s]; found {
continue
}
cfg.Bootstrap = append(cfg.Bootstrap, s)
addedMap[s] = struct{}{}
}
if err := r.SetConfig(cfg); err != nil {
return nil, err
}
return addedList, nil
}