func main()

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.")
	}
}