+++ /dev/null
-package shell
-
-import (
- "context"
- "time"
-)
-
-type PublishResponse struct {
- Name string `json:"name"`
- Value string `json:"value"`
-}
-
-// Publish updates a mutable name to point to a given value
-func (s *Shell) Publish(node string, value string) error {
- var pubResp PublishResponse
- req := s.Request("name/publish")
- if node != "" {
- req.Arguments(node)
- }
- req.Arguments(value)
-
- return req.Exec(context.Background(), &pubResp)
-}
-
-// PublishWithDetails is used for fine grained control over record publishing
-func (s *Shell) PublishWithDetails(contentHash, key string, lifetime, ttl time.Duration, resolve bool) (*PublishResponse, error) {
- var pubResp PublishResponse
- req := s.Request("name/publish", contentHash).Option("resolve", resolve)
- if key != "" {
- req.Option("key", key)
- }
- if lifetime != 0 {
- req.Option("lifetime", lifetime)
- }
- if ttl.Seconds() > 0 {
- req.Option("ttl", ttl)
- }
- err := req.Exec(context.Background(), &pubResp)
- if err != nil {
- return nil, err
- }
- return &pubResp, nil
-}
-
-// Resolve gets resolves the string provided to an /ipns/[name]. If asked to
-// resolve an empty string, resolve instead resolves the node's own /ipns value.
-func (s *Shell) Resolve(id string) (string, error) {
- req := s.Request("name/resolve")
- if id != "" {
- req.Arguments(id)
- }
- var out struct{ Path string }
- err := req.Exec(context.Background(), &out)
- return out.Path, err
-}