MCPcopy Create free account
hub / github.com/docker/secrets-engine / SetCommand

Function SetCommand

plugins/pass/commands/set.go:48–114  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

46}
47
48func SetCommand() *cobra.Command {
49 opts := setOpts{}
50 cmd := &cobra.Command{
51 Use: "set id[=value]",
52 Aliases: []string{"store", "save"},
53 Short: "Set a secret",
54 Long: strings.Trim(setLong, "\n"),
55 Example: strings.Trim(setExample, "\n"),
56 Args: cobra.ExactArgs(1),
57 RunE: func(cmd *cobra.Command, args []string) error {
58 kc, err := StoreFrom(cmd.Context())
59 if err != nil {
60 return err
61 }
62 var s secret
63 if isNotImplicitReadFromStdinSyntax(args) {
64 va, err := parseArg(args[0])
65 if err != nil {
66 return err
67 }
68 s = *va
69 } else {
70 val, err := secretMappingFromSTDIN(cmd.Context(), cmd.InOrStdin(), args[0])
71 if err != nil {
72 return err
73 }
74 s = *val
75 }
76 id, err := secrets.ParseID(s.id)
77 if err != nil {
78 return err
79 }
80
81 flagMeta, err := parseMetadataFlags(opts.metadata)
82 if err != nil {
83 return err
84 }
85
86 // Merge: start with STDIN JSON metadata, override with flag metadata
87 merged := maps.Clone(s.metadata)
88 for k, v := range flagMeta {
89 if merged == nil {
90 merged = make(map[string]string)
91 }
92 merged[k] = v
93 }
94
95 pv := &pass.PassValue{}
96 if err := pv.Unmarshal([]byte(s.val)); err != nil {
97 return err
98 }
99 if len(merged) > 0 {
100 if err := pv.SetMetadata(merged); err != nil {
101 return err
102 }
103 }
104 if opts.force {
105 return kc.Upsert(cmd.Context(), id, pv)

Callers 1

Test_SetCommandFunction · 0.85

Calls 9

UnmarshalMethod · 0.95
SetMetadataMethod · 0.95
StoreFromFunction · 0.85
parseArgFunction · 0.85
secretMappingFromSTDINFunction · 0.85
parseMetadataFlagsFunction · 0.85
UpsertMethod · 0.65
SaveMethod · 0.65

Tested by 1

Test_SetCommandFunction · 0.68