in internal/pkg/cli/task_run.go [351:448]
func (o *runTaskOpts) Validate() error {
if o.generateCommandTarget != "" {
if o.nFlag >= 2 {
return errors.New("cannot specify `--generate-cmd` with any other flag")
}
}
if o.count <= 0 {
return errNumNotPositive
}
if o.groupName != "" {
if err := basicNameValidation(o.groupName); err != nil {
return err
}
}
if o.image != "" && o.isDockerfileSet {
return errors.New("cannot specify both `--image` and `--dockerfile`")
}
if o.image != "" && o.dockerfileContextPath != "" {
return errors.New("cannot specify both `--image` and `--build-context`")
}
if o.image != "" && o.dockerfileBuildArgs != nil {
return errors.New("cannot specify both `--image` and `--build-args`")
}
if o.isDockerfileSet {
if _, err := o.fs.Stat(o.dockerfilePath); err != nil {
return fmt.Errorf("invalid `--dockerfile` path: %w", err)
}
}
if o.dockerfileContextPath != "" {
if _, err := o.fs.Stat(o.dockerfileContextPath); err != nil {
return fmt.Errorf("invalid `--build-context` path: %w", err)
}
}
if noOS, noArch := o.os == "", o.arch == ""; noOS != noArch {
return fmt.Errorf("must specify either both `--%s` and `--%s` or neither", osFlag, archFlag)
}
if err := o.validatePlatform(); err != nil {
return err
}
if o.cpu <= 0 {
return errCPUNotPositive
}
if o.memory <= 0 {
return errMemNotPositive
}
if err := o.validateFlagsWithCluster(); err != nil {
return err
}
if err := o.validateFlagsWithDefaultCluster(); err != nil {
return err
}
if err := o.validateFlagsWithSubnets(); err != nil {
return err
}
if err := o.validateFlagsWithWindows(); err != nil {
return err
}
if o.appName != "" {
if err := o.validateAppName(); err != nil {
return err
}
}
if o.env != "" {
if err := o.validateEnvName(); err != nil {
return err
}
}
for _, value := range o.secrets {
if !isSSM(value) && !isSecretsManager(value) {
return fmt.Errorf("must specify a valid secrets ARN")
}
}
if o.envFile != "" {
if filepath.Ext(o.envFile) != envFileExt {
return fmt.Errorf("environment file %s specified in --%s must have a %s file extension", o.envFile, envFileFlag, envFileExt)
}
}
return nil
}