in cli_tools/diagnostics/main.go [139:182]
func main() {
var err error
tmpFolder, err = ioutil.TempDir("", "diagnostics")
if err != nil {
log.Fatal("Error creating a temporary folder. Exiting")
}
signedURL := flag.String("signedUrl", "", "The Signed Url to upload the zipped logs to.")
traceFlag := flag.Bool("trace", false, "Take a 10 minute trace of the system using wpr.")
flag.Parse()
nonFatalErrorsPresent := false
paths, err := gatherLogs(*traceFlag)
if err != nil {
nonFatalErrorsPresent = true
}
zipFile := filepath.Join(tmpFolder, "logs.zip")
err = zipFiles(paths, zipFile)
if err == errNonFatal {
nonFatalErrorsPresent = true
} else if err != nil {
log.Fatalf("Error zipping files: %v", err)
}
if *signedURL != "" {
log.Printf("Diagnostics: logs uploading to [[%s]].", *signedURL)
if err = uploadToSignedURL(zipFile, *signedURL); err != nil {
log.Fatalf("Error uploading to signed url: %v. Logs can be found at %s", err, zipFile)
}
log.Print("Diagnostics: logs uploaded to the supplied url successfully.")
} else {
knownZipPath, err := moveZipFile(zipFile)
if err != nil {
log.Fatalf("Error moving logs to well known directory. They can be found instead at: %s", zipFile)
}
log.Printf("Logs can be found at %s", knownZipPath)
}
os.RemoveAll(tmpFolder)
if nonFatalErrorsPresent {
log.Fatal("Errors occured while collecting and zipping some logs.\nUnaffected logs were still packaged and available.")
}
}