func renameTag(store *storage.Storage, tx *storage.Tx, currentName, newName string) error { sourceTag, err := store.TagByName(tx, currentName) if err != nil { return fmt.Errorf("could not retrieve tag '%v': %v", currentName, err) } if sourceTag == nil { return fmt.Errorf("no such tag '%v'", currentName) } destTag, err := store.TagByName(tx, newName) if err != nil { return fmt.Errorf("could not retrieve tag '%v': %v", newName, err) } if destTag != nil { return fmt.Errorf("tag '%v' already exists", newName) } log.Infof(2, "renaming tag '%v' to '%v'.", currentName, newName) _, err = store.RenameTag(tx, sourceTag.Id, newName) if err != nil { return fmt.Errorf("could not rename tag '%v' to '%v': %v", currentName, newName, err) } return nil }