github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/listUnreferencedObjects.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/Cloud-Foundations/Dominator/imageserver/client" 7 "github.com/Cloud-Foundations/Dominator/lib/log" 8 "github.com/Cloud-Foundations/Dominator/lib/srpc" 9 ) 10 11 func listUnreferencedObjectsSubcommand(args []string, 12 logger log.DebugLogger) error { 13 imageClient, _ := getClients() 14 if err := listUnreferencedObjects(imageClient, false); err != nil { 15 return fmt.Errorf("Error listing unreferenced objects: %s", err) 16 } 17 return nil 18 } 19 20 func showUnreferencedObjectsSubcommand(args []string, 21 logger log.DebugLogger) error { 22 imageClient, _ := getClients() 23 if err := listUnreferencedObjects(imageClient, true); err != nil { 24 return fmt.Errorf("Error listing unreferenced objects: %s", err) 25 } 26 return nil 27 } 28 29 func listUnreferencedObjects(imageSClient *srpc.Client, showSize bool) error { 30 objects, err := client.ListUnreferencedObjects(imageSClient) 31 if err != nil { 32 return err 33 } 34 for hashVal, size := range objects { 35 if showSize { 36 fmt.Printf("%x %d\n", hashVal, size) 37 } else { 38 fmt.Printf("%x\n", hashVal) 39 } 40 } 41 return nil 42 }