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 }