func labelsToString(inLabels types.Labels) string { // take a copy to avoid changing the original slice labels := append(types.Labels(nil), inLabels...) sort.Sort(labelsSlice(labels)) var out []string for _, l := range labels { out = append(out, fmt.Sprintf("%q:%q", l.Name, l.Value)) } return "[" + strings.Join(out, ", ") + "]" }
func runAddDep(cmd *cobra.Command, args []string) (exit int) { if len(args) == 0 { cmd.Usage() return 1 } if len(args) != 1 { stderr("dependency add: incorrect number of arguments") return 1 } if debug { stderr("Adding dependency %q", args[0]) } app, err := discovery.NewAppFromString(args[0]) if err != nil { stderr("dependency add: couldn't parse dependency name: %v", err) return 1 } appcLabels := types.Labels(labels) for name, value := range app.Labels { if _, ok := appcLabels.Get(string(name)); ok { stderr("multiple %s labels specified", name) return 1 } appcLabels = append(appcLabels, types.Label{ Name: name, Value: value, }) } var hash *types.Hash if imageId != "" { var err error hash, err = types.NewHash(imageId) if err != nil { stderr("dependency add: couldn't parse image ID: %v", err) return 1 } } err = newACBuild().AddDependency(app.Name, hash, appcLabels, size) if err != nil { stderr("dependency add: %v", err) return getErrorCode(err) } return 0 }