MCPcopy
hub / github.com/perkeep/perkeep / RunCommand

Method RunCommand

cmd/pk/searchnames.go:74–115  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

72}
73
74func (c *searchNamesSetCmd) RunCommand(args []string) error {
75 if len(args) != 2 {
76 return cmdmain.UsageError("expected 2 arguments")
77 }
78 named, substitute := args[0], args[1]
79
80 cc := newClient("")
81 uh := client.NewUploadHandleFromString(substitute)
82 substpr, err := cc.Upload(ctxbg, uh)
83 if err != nil {
84 return err
85 }
86 var pn blob.Ref
87 claims := []*schema.Builder{}
88 gr, err := getNamedSearch(named)
89 if err == nil {
90 pn = gr.PermaRef
91 } else {
92 pnpr, err := cc.UploadAndSignBlob(ctxbg, schema.NewUnsignedPermanode())
93 if err != nil {
94 return err
95 }
96 pn = pnpr.BlobRef
97
98 claims = append(claims, schema.NewSetAttributeClaim(pn, "camliNamedSearch", named))
99 claims = append(claims, schema.NewSetAttributeClaim(pn, "title", fmt.Sprintf("named:%s", named)))
100 }
101 claims = append(claims, schema.NewSetAttributeClaim(pn, "camliContent", substpr.BlobRef.String()))
102 for _, claimBuilder := range claims {
103 _, err := cc.UploadAndSignBlob(ctxbg, claimBuilder)
104 if err != nil {
105 return err
106 }
107 }
108 snr := setNamedResponse{PermaRef: pn, SubstRef: substpr.BlobRef}
109 out, err := json.MarshalIndent(snr, " ", "")
110 if err != nil {
111 return err
112 }
113 fmt.Fprintln(cmdmain.Stdout, string(out))
114 return nil
115}
116
117type getNamedResponse struct {
118 Named string `json:"named"`

Callers

nothing calls this directly

Calls 9

UsageErrorTypeAlias · 0.92
NewUnsignedPermanodeFunction · 0.92
NewSetAttributeClaimFunction · 0.92
getNamedSearchFunction · 0.85
UploadAndSignBlobMethod · 0.80
newClientFunction · 0.70
UploadMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected