github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/listDirectories.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/image" 8 "github.com/Cloud-Foundations/Dominator/lib/log" 9 "github.com/Cloud-Foundations/Dominator/lib/srpc" 10 ) 11 12 func listDirectoriesSubcommand(args []string, logger log.DebugLogger) error { 13 imageClient, _ := getClients() 14 if err := listDirectories(imageClient); err != nil { 15 return fmt.Errorf("Error listing directories: %s", err) 16 } 17 return nil 18 } 19 20 func listDirectories(imageSClient *srpc.Client) error { 21 directories, err := client.ListDirectories(imageSClient) 22 if err != nil { 23 return err 24 } 25 image.SortDirectories(directories) 26 maxDirnameWidth := 0 27 for _, directory := range directories { 28 if len(directory.Name) > maxDirnameWidth { 29 maxDirnameWidth = len(directory.Name) 30 } 31 } 32 for _, directory := range directories { 33 if directory.Metadata.OwnerGroup == "" { 34 fmt.Println(directory.Name) 35 continue 36 } 37 fmt.Printf("%-*s ", maxDirnameWidth, directory.Name) 38 fmt.Printf("OwnerGroup=%s", directory.Metadata.OwnerGroup) 39 fmt.Println() 40 } 41 return nil 42 }