func ParseArgs()

in cli/cli_args.go [71:161]


func ParseArgs(cliArgs *CliArgs) {
	accountId := flag.String("account", "", "AWS AccountId (required).")
	region := flag.String("region", "us-west-2", "AWS Region.")
	deviceFleet := flag.String("deviceFleet", "", "Name of the device fleet (required).")
	deviceName := flag.String("deviceName", "", "Name of the device (required).")

	targetOs := flag.String("os", "", "Name of operating system (optional with distribution binary).")
	targetArch := flag.String("arch", "", "Name of device architecture (optional with distribution binary).")
	targetAccelerator := flag.String("accelerator", "", "Name of accelerator (optional).")

	iotThingType := flag.String("iotThingType", "", "Iot thing type for the device (optional/autogenerated).")
	iotThingName := flag.String("iotThingName", "", "IOT thing name for the device (optional/autogenerated).")
	deviceFleetRole := flag.String("deviceFleetRole", "", "Name of the role for the device fleet (optional/autogenerated).")
	deviceFleetBucket := flag.String("deviceFleetBucket", "", "Bucket to store device related data (optional/autogenerated).")
	s3FolderPrefix := flag.String("s3FolderPrefix", "", "S3 prefix to store captured data (optional/autogenerated).")

	cwd, err := os.Getwd()

	if err != nil {
		log.Fatal("Error ", err)
	}

	defaultAgentDirectory := filepath.Join(cwd, "demo-agent")
	agentDirectory := flag.String("agentDirectory", defaultAgentDirectory, "Local path to store agent")

	version := flag.Bool("version", false, "Print the version of aws-sagemaker-edge-quick-device-setup")
	dist := flag.Bool("dist", false, "Print distribution information.")

	flag.Parse()

	if *version {
		fmt.Println(distinfo.VERSION)
		os.Exit(0)
	}

	fmt.Println("Distribution Information")
	fmt.Println("Version: ", distinfo.VERSION)
	if distinfo.OS != "" {
		fmt.Println("Os: ", distinfo.OS)
	}
	if distinfo.ARCH != "" {
		fmt.Println("Architecture: ", distinfo.ARCH)
	}

	if *dist {
		os.Exit(0)
	}

	if *deviceFleet == "" || *deviceName == "" || *accountId == "" {
		log.Fatal("Missing deviceFleet or deviceName or account")
	}

	cliArgs.DeviceFleet = *deviceFleet
	cliArgs.DeviceName = *deviceName

	if *targetOs == "" {
		log.Println(distinfo.OS)
		*targetOs = distinfo.OS
	}

	if *targetArch == "" {
		*targetArch = distinfo.ARCH
	}

	cliArgs.TargetPlatform = TargetPlatform{Os: strings.ToLower(*targetOs), Arch: strings.ToLower(*targetArch), Accelerator: strings.ToLower(*targetAccelerator)}
	cliArgs.TargetPlatform.Validate()

	cliArgs.Account = *accountId
	cliArgs.Region = *region
	cliArgs.AgentDirectory = *agentDirectory

	if *iotThingType == "" {
		*iotThingType = fmt.Sprintf("Sagemaker_%s", cliArgs.DeviceFleet)
	}
	if *iotThingName == "" {
		*iotThingType = fmt.Sprintf("Sagemaker_%s", cliArgs.DeviceName)
	}
	if *deviceFleetRole == "" {
		*deviceFleetRole = fmt.Sprintf("Sagemaker_%s_role", cliArgs.DeviceFleet)
	}

	if *s3FolderPrefix == "" {
		*s3FolderPrefix = "demo"
	}

	cliArgs.IotThingType = *iotThingType
	cliArgs.IotThingName = *iotThingType
	cliArgs.DeviceFleetRole = *deviceFleetRole
	cliArgs.DeviceFleetBucket = *deviceFleetBucket
	cliArgs.S3FolderPrefix = *s3FolderPrefix
}