github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/imagetool/getImageBuildLog.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"os"
     7  
     8  	"github.com/Cloud-Foundations/Dominator/lib/fsutil"
     9  	"github.com/Cloud-Foundations/Dominator/lib/log"
    10  	objectclient "github.com/Cloud-Foundations/Dominator/lib/objectserver/client"
    11  )
    12  
    13  func getImageBuildLogSubcommand(args []string, logger log.DebugLogger) error {
    14  	_, objectClient := getClients()
    15  	var outFileName string
    16  	if len(args) > 1 {
    17  		outFileName = args[1]
    18  	}
    19  	err := getImageBuildLog(objectClient, args[0], outFileName)
    20  	if err != nil {
    21  		return fmt.Errorf("error getting image build log: %s", err)
    22  	}
    23  	return nil
    24  }
    25  
    26  func getImageBuildLog(objectClient *objectclient.ObjectClient,
    27  	imageName, outFileName string) error {
    28  	reader, err := getTypedImageBuildLogReader(imageName)
    29  	if err != nil {
    30  		return err
    31  	}
    32  	defer reader.Close()
    33  	if outFileName == "" {
    34  		_, err := io.Copy(os.Stdout, reader)
    35  		return err
    36  	} else {
    37  		return fsutil.CopyToFile(outFileName, filePerms, reader, 0)
    38  	}
    39  }