func()

in oss/lib/probe.go [485:534]


func (pc *ProbeCommand) RunCommand() error {
	var err error

	pc.pbOption.opUpload, _ = GetBool(OptionUpload, pc.command.options)
	pc.pbOption.opDownload, _ = GetBool(OptionDownload, pc.command.options)
	pc.pbOption.fromUrl, _ = GetString(OptionUrl, pc.command.options)
	pc.pbOption.bucketName, _ = GetString(OptionBucketName, pc.command.options)
	pc.pbOption.objectName, _ = GetString(OptionObject, pc.command.options)
	pc.pbOption.netAddr, _ = GetString(OptionAddr, pc.command.options)
	pc.pbOption.upMode, _ = GetString(OptionUpMode, pc.command.options)
	pc.pbOption.probeItem, _ = GetString(OptionProbeItem, pc.command.options)

	if pc.pbOption.probeItem != "" {
		var err error
		if pc.pbOption.probeItem == "cycle-symlink" {
			err = pc.CheckCycleSymlinkWithDeepTravel()
			if err == nil {
				fmt.Println("\n", "success")
			}
		} else if pc.pbOption.probeItem == "upload-speed" || pc.pbOption.probeItem == "download-speed" {
			err = pc.DetectBandWidth()
		} else if pc.pbOption.probeItem == "download-time" {
			err = pc.DetectDownloadTime()
		} else {
			err = fmt.Errorf("not support %s", pc.pbOption.probeItem)
		}
		return err
	}

	pc.pbOption.logFile, pc.pbOption.logName, err = logFileMake()
	if err != nil {
		return fmt.Errorf("probe logFileMake error,%s", err.Error())
	}
	defer pc.pbOption.logFile.Close()

	pc.pbOption.logFile.WriteString("*************************	system information	*************************\n")
	pc.pbOption.logFile.WriteString(fmt.Sprintf("operating system:%s_%s\n", runtime.GOOS, runtime.GOARCH))
	pc.pbOption.logFile.WriteString(fmt.Sprintf("operating time:%s\n", time.Now().Format("2006-01-02 15:04:05")))

	if pc.pbOption.opUpload && pc.pbOption.opDownload {
		err = fmt.Errorf("error,upload and download are both true")
	} else if !pc.pbOption.opUpload && !pc.pbOption.opDownload {
		err = fmt.Errorf("error,upload and download are both false")
	} else if !pc.pbOption.opUpload && pc.pbOption.opDownload {
		err = pc.probeDownload()
	} else {
		err = pc.probeUpload()
	}
	return err
}