CLI helper: print backtraces with errors

Print backtrace information when displaying an error returned by our
API, to make troubleshooting tests a bit easier.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
This commit is contained in:
Nalin Dahyabhai 2019-02-20 13:23:19 -05:00
parent f61b77479f
commit 06025caa49
16 changed files with 58 additions and 58 deletions

View File

@ -17,7 +17,7 @@ var (
func container(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func container(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
images, err := m.Images() images, err := m.Images()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
matches := []*storage.Container{} matches := []*storage.Container{}
@ -45,7 +45,7 @@ func container(flags *mflag.FlagSet, action string, m storage.Store, args []stri
} }
size, err := m.ContainerSize(container.ID) size, err := m.ContainerSize(container.ID)
if err != nil { if err != nil {
fmt.Printf("Size unknown: %v\n", err) fmt.Printf("Size unknown: %+v\n", err)
} else { } else {
fmt.Printf("Size: %d\n", size) fmt.Printf("Size: %d\n", size)
} }
@ -64,7 +64,7 @@ func container(flags *mflag.FlagSet, action string, m storage.Store, args []stri
func listContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func listContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
container, err := m.Container(args[0]) container, err := m.Container(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
d, err := m.ListContainerBigData(container.ID) d, err := m.ListContainerBigData(container.ID)
@ -81,7 +81,7 @@ func listContainerBigData(flags *mflag.FlagSet, action string, m storage.Store,
func getContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
container, err := m.Container(args[0]) container, err := m.Container(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
output := os.Stdout output := os.Stdout
@ -95,7 +95,7 @@ func getContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, a
} }
b, err := m.ContainerBigData(container.ID, args[1]) b, err := m.ContainerBigData(container.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
output.Write(b) output.Write(b)
@ -106,12 +106,12 @@ func getContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, a
func getContainerBigDataSize(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getContainerBigDataSize(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
container, err := m.Container(args[0]) container, err := m.Container(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
size, err := m.ContainerBigDataSize(container.ID, args[1]) size, err := m.ContainerBigDataSize(container.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
fmt.Fprintf(os.Stdout, "%d\n", size) fmt.Fprintf(os.Stdout, "%d\n", size)
@ -121,12 +121,12 @@ func getContainerBigDataSize(flags *mflag.FlagSet, action string, m storage.Stor
func getContainerBigDataDigest(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getContainerBigDataDigest(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
container, err := m.Container(args[0]) container, err := m.Container(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
d, err := m.ContainerBigDataDigest(container.ID, args[1]) d, err := m.ContainerBigDataDigest(container.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if d.Validate() != nil { if d.Validate() != nil {
@ -140,7 +140,7 @@ func getContainerBigDataDigest(flags *mflag.FlagSet, action string, m storage.St
func setContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func setContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
container, err := m.Container(args[0]) container, err := m.Container(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
input := os.Stdin input := os.Stdin
@ -159,7 +159,7 @@ func setContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, a
} }
err = m.SetContainerBigData(container.ID, args[1], b) err = m.SetContainerBigData(container.ID, args[1], b)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
return 0 return 0
@ -168,7 +168,7 @@ func setContainerBigData(flags *mflag.FlagSet, action string, m storage.Store, a
func getContainerDir(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getContainerDir(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
path, err := m.ContainerDirectory(args[0]) path, err := m.ContainerDirectory(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
fmt.Printf("%s\n", path) fmt.Printf("%s\n", path)
@ -178,7 +178,7 @@ func getContainerDir(flags *mflag.FlagSet, action string, m storage.Store, args
func getContainerRunDir(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getContainerRunDir(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
path, err := m.ContainerRunDirectory(args[0]) path, err := m.ContainerRunDirectory(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
fmt.Printf("%s\n", path) fmt.Printf("%s\n", path)
@ -195,7 +195,7 @@ func containerParentOwners(flags *mflag.FlagSet, action string, m storage.Store,
for _, container := range matched { for _, container := range matched {
uids, gids, err := m.ContainerParentOwners(container.ID) uids, gids, err := m.ContainerParentOwners(container.ID)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "ContainerParentOwner: %v\n", err) fmt.Fprintf(os.Stderr, "ContainerParentOwner: %+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -12,7 +12,7 @@ import (
func containers(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func containers(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
containers, err := m.Containers() containers, err := m.Containers()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -49,13 +49,13 @@ func copyContent(flags *mflag.FlagSet, action string, m storage.Store, args []st
} }
targetLayer, err := m.Layer(targetParts[0]) targetLayer, err := m.Layer(targetParts[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "error finding layer %q: %v\n", targetParts[0], err) fmt.Fprintf(os.Stderr, "error finding layer %q: %+v\n", targetParts[0], err)
return 1 return 1
} }
untarIDMappings = idtools.NewIDMappingsFromMaps(targetLayer.UIDMap, targetLayer.GIDMap) untarIDMappings = idtools.NewIDMappingsFromMaps(targetLayer.UIDMap, targetLayer.GIDMap)
targetMount, err := m.Mount(targetLayer.ID, targetLayer.MountLabel) targetMount, err := m.Mount(targetLayer.ID, targetLayer.MountLabel)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "error mounting layer %q: %v\n", targetLayer.ID, err) fmt.Fprintf(os.Stderr, "error mounting layer %q: %+v\n", targetLayer.ID, err)
return 1 return 1
} }
target = filepath.Join(targetMount, targetParts[1]) target = filepath.Join(targetMount, targetParts[1])
@ -73,13 +73,13 @@ func copyContent(flags *mflag.FlagSet, action string, m storage.Store, args []st
} }
sourceLayer, err := m.Layer(sourceParts[0]) sourceLayer, err := m.Layer(sourceParts[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "error finding layer %q: %v\n", sourceParts[0], err) fmt.Fprintf(os.Stderr, "error finding layer %q: %+v\n", sourceParts[0], err)
return 1 return 1
} }
tarIDMappings = idtools.NewIDMappingsFromMaps(sourceLayer.UIDMap, sourceLayer.GIDMap) tarIDMappings = idtools.NewIDMappingsFromMaps(sourceLayer.UIDMap, sourceLayer.GIDMap)
sourceMount, err := m.Mount(sourceLayer.ID, sourceLayer.MountLabel) sourceMount, err := m.Mount(sourceLayer.ID, sourceLayer.MountLabel)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "error mounting layer %q: %v\n", sourceLayer.ID, err) fmt.Fprintf(os.Stderr, "error mounting layer %q: %+v\n", sourceLayer.ID, err)
return 1 return 1
} }
source = filepath.Join(sourceMount, sourceParts[1]) source = filepath.Join(sourceMount, sourceParts[1])
@ -87,7 +87,7 @@ func copyContent(flags *mflag.FlagSet, action string, m storage.Store, args []st
} }
archiver := chrootarchive.NewArchiverWithChown(tarIDMappings, chownOpts, untarIDMappings) archiver := chrootarchive.NewArchiverWithChown(tarIDMappings, chownOpts, untarIDMappings)
if err := archiver.CopyWithTar(source, target); err != nil { if err := archiver.CopyWithTar(source, target); err != nil {
fmt.Fprintf(os.Stderr, "error copying %q to %q: %v\n", source, target, err) fmt.Fprintf(os.Stderr, "error copying %q to %q: %+v\n", source, target, err)
return 1 return 1
} }
} }

View File

@ -83,7 +83,7 @@ func createLayer(flags *mflag.FlagSet, action string, m storage.Store, args []st
options := &storage.LayerOptions{IDMappingOptions: *mappings} options := &storage.LayerOptions{IDMappingOptions: *mappings}
layer, err := m.CreateLayer(paramID, parent, paramNames, paramMountLabel, !paramCreateRO, options) layer, err := m.CreateLayer(paramID, parent, paramNames, paramMountLabel, !paramCreateRO, options)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -120,7 +120,7 @@ func importLayer(flags *mflag.FlagSet, action string, m storage.Store, args []st
options := &storage.LayerOptions{IDMappingOptions: *mappings} options := &storage.LayerOptions{IDMappingOptions: *mappings}
layer, _, err := m.PutLayer(paramID, parent, paramNames, paramMountLabel, !paramCreateRO, options, diffStream) layer, _, err := m.PutLayer(paramID, parent, paramNames, paramMountLabel, !paramCreateRO, options, diffStream)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -157,7 +157,7 @@ func createImage(flags *mflag.FlagSet, action string, m storage.Store, args []st
} }
image, err := m.CreateImage(paramID, paramNames, layer, paramMetadata, imageOptions) image, err := m.CreateImage(paramID, paramNames, layer, paramMetadata, imageOptions)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -193,7 +193,7 @@ func createContainer(flags *mflag.FlagSet, action string, m storage.Store, args
options := &storage.ContainerOptions{IDMappingOptions: *mappings} options := &storage.ContainerOptions{IDMappingOptions: *mappings}
container, err := m.CreateContainer(paramID, paramNames, args[0], paramLayer, paramMetadata, options) container, err := m.CreateContainer(paramID, paramNames, args[0], paramLayer, paramMetadata, options)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -31,7 +31,7 @@ func changes(flags *mflag.FlagSet, action string, m storage.Store, args []string
} }
changes, err := m.Changes(from, to) changes, err := m.Changes(from, to)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -66,7 +66,7 @@ func diff(flags *mflag.FlagSet, action string, m storage.Store, args []string) i
if diffFile != "" { if diffFile != "" {
f, err := os.Create(diffFile) f, err := os.Create(diffFile)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
diffStream = f diffStream = f
@ -90,13 +90,13 @@ func diff(flags *mflag.FlagSet, action string, m storage.Store, args []string) i
reader, err := m.Diff(from, to, &options) reader, err := m.Diff(from, to, &options)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
_, err = io.Copy(diffStream, reader) _, err = io.Copy(diffStream, reader)
reader.Close() reader.Close()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
return 0 return 0
@ -110,7 +110,7 @@ func applyDiff(flags *mflag.FlagSet, action string, m storage.Store, args []stri
if applyDiffFile != "" { if applyDiffFile != "" {
f, err := os.Open(applyDiffFile) f, err := os.Open(applyDiffFile)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
diffStream = f diffStream = f
@ -118,7 +118,7 @@ func applyDiff(flags *mflag.FlagSet, action string, m storage.Store, args []stri
} }
_, err := m.ApplyDiff(args[0], diffStream) _, err := m.ApplyDiff(args[0], diffStream)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
return 0 return 0
@ -135,7 +135,7 @@ func diffSize(flags *mflag.FlagSet, action string, m storage.Store, args []strin
} }
n, err := m.DiffSize(from, to) n, err := m.DiffSize(from, to)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
fmt.Printf("%d\n", n) fmt.Printf("%d\n", n)

View File

@ -41,7 +41,7 @@ func image(flags *mflag.FlagSet, action string, m storage.Store, args []string)
} }
size, err := m.ImageSize(image.ID) size, err := m.ImageSize(image.ID)
if err != nil { if err != nil {
fmt.Printf("Size unknown: %v\n", err) fmt.Printf("Size unknown: %+v\n", err)
} else { } else {
fmt.Printf("Size: %d\n", size) fmt.Printf("Size: %d\n", size)
} }
@ -56,7 +56,7 @@ func image(flags *mflag.FlagSet, action string, m storage.Store, args []string)
func listImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func listImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
image, err := m.Image(args[0]) image, err := m.Image(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
d, err := m.ListImageBigData(image.ID) d, err := m.ListImageBigData(image.ID)
@ -73,7 +73,7 @@ func listImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args
func getImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
image, err := m.Image(args[0]) image, err := m.Image(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
output := os.Stdout output := os.Stdout
@ -87,7 +87,7 @@ func getImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args
} }
b, err := m.ImageBigData(image.ID, args[1]) b, err := m.ImageBigData(image.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
output.Write(b) output.Write(b)
@ -98,12 +98,12 @@ func getImageBigData(flags *mflag.FlagSet, action string, m storage.Store, args
func getImageBigDataSize(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getImageBigDataSize(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
image, err := m.Image(args[0]) image, err := m.Image(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
size, err := m.ImageBigDataSize(image.ID, args[1]) size, err := m.ImageBigDataSize(image.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
fmt.Fprintf(os.Stdout, "%d\n", size) fmt.Fprintf(os.Stdout, "%d\n", size)
@ -113,12 +113,12 @@ func getImageBigDataSize(flags *mflag.FlagSet, action string, m storage.Store, a
func getImageBigDataDigest(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func getImageBigDataDigest(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
image, err := m.Image(args[0]) image, err := m.Image(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
d, err := m.ImageBigDataDigest(image.ID, args[1]) d, err := m.ImageBigDataDigest(image.ID, args[1])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if d.Validate() != nil { if d.Validate() != nil {

View File

@ -17,7 +17,7 @@ var (
func images(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func images(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
images, err := m.Images() images, err := m.Images()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -52,7 +52,7 @@ func imagesByDigest(flags *mflag.FlagSet, action string, m storage.Store, args [
} }
matched, err := m.ImagesByDigest(d) matched, err := m.ImagesByDigest(d)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
for _, match := range matched { for _, match := range matched {

View File

@ -51,7 +51,7 @@ func layerParentOwners(flags *mflag.FlagSet, action string, m storage.Store, arg
for _, layer := range matched { for _, layer := range matched {
uids, gids, err := m.LayerParentOwners(layer.ID) uids, gids, err := m.LayerParentOwners(layer.ID)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "LayerParentOwner: %v\n", err) fmt.Fprintf(os.Stderr, "LayerParentOwner: %+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -14,7 +14,7 @@ var listLayersTree = false
func layers(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func layers(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
layers, err := m.Layers() layers, err := m.Layers()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -117,7 +117,7 @@ func main() {
} }
store, err := storage.GetStore(options) store, err := storage.GetStore(options)
if err != nil { if err != nil {
fmt.Printf("error initializing: %v\n", err) fmt.Printf("error initializing: %+v\n", err)
os.Exit(1) os.Exit(1)
} }
os.Exit(command.action(flags, cmd, store, args)) os.Exit(command.action(flags, cmd, store, args))

View File

@ -65,7 +65,7 @@ func setMetadata(flags *mflag.FlagSet, action string, m storage.Store, args []st
paramMetadata = string(b) paramMetadata = string(b)
} }
if err := m.SetMetadata(args[0], paramMetadata); err != nil { if err := m.SetMetadata(args[0], paramMetadata); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
return 0 return 0

View File

@ -16,12 +16,12 @@ func getNames(flags *mflag.FlagSet, action string, m storage.Store, args []strin
} }
id, err := m.Lookup(args[0]) id, err := m.Lookup(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
names, err := m.Names(id) names, err := m.Names(id)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -40,12 +40,12 @@ func addNames(flags *mflag.FlagSet, action string, m storage.Store, args []strin
} }
id, err := m.Lookup(args[0]) id, err := m.Lookup(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
oldnames, err := m.Names(id) oldnames, err := m.Names(id)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
newNames := []string{} newNames := []string{}
@ -56,12 +56,12 @@ func addNames(flags *mflag.FlagSet, action string, m storage.Store, args []strin
newNames = append(newNames, paramNames...) newNames = append(newNames, paramNames...)
} }
if err := m.SetNames(id, newNames); err != nil { if err := m.SetNames(id, newNames); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
names, err := m.Names(id) names, err := m.Names(id)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {
@ -76,16 +76,16 @@ func setNames(flags *mflag.FlagSet, action string, m storage.Store, args []strin
} }
id, err := m.Lookup(args[0]) id, err := m.Lookup(args[0])
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if err := m.SetNames(id, paramNames); err != nil { if err := m.SetNames(id, paramNames); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
names, err := m.Names(id) names, err := m.Names(id)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) fmt.Fprintf(os.Stderr, "%+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -23,7 +23,7 @@ func shutdown(flags *mflag.FlagSet, action string, m storage.Store, args []strin
} }
} else { } else {
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%s: %v\n", action, err) fmt.Fprintf(os.Stderr, "%s: %+v\n", action, err)
} }
} }
if err != nil { if err != nil {

View File

@ -12,7 +12,7 @@ import (
func status(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func status(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
status, err := m.Status() status, err := m.Status()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "status: %v\n", err) fmt.Fprintf(os.Stderr, "status: %+v\n", err)
return 1 return 1
} }
basics := [][2]string{ basics := [][2]string{

View File

@ -12,7 +12,7 @@ import (
func version(flags *mflag.FlagSet, action string, m storage.Store, args []string) int { func version(flags *mflag.FlagSet, action string, m storage.Store, args []string) int {
version, err := m.Version() version, err := m.Version()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "version: %v\n", err) fmt.Fprintf(os.Stderr, "version: %+v\n", err)
return 1 return 1
} }
if jsonOutput { if jsonOutput {

View File

@ -19,7 +19,7 @@ func wipe(flags *mflag.FlagSet, action string, m storage.Store, args []string) i
} }
} else { } else {
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "%s: %v\n", action, err) fmt.Fprintf(os.Stderr, "%s: %+v\n", action, err)
} }
} }
if err != nil { if err != nil {