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  }