func()

in internal/pkg/cli/svc_init.go [260:307]


func (o *initSvcOpts) Validate() error {
	// If this app is pending creation, we'll skip validation.
	if !o.wsPendingCreation {
		if err := validateWorkspaceApp(o.wsAppName, o.appName, o.store); err != nil {
			return err
		}
		o.appName = o.wsAppName
	}
	if o.dockerfilePath != "" && o.image != "" {
		return fmt.Errorf("--%s and --%s cannot be specified together", dockerFileFlag, imageFlag)
	}
	if o.dockerfilePath != "" {
		if _, err := o.fs.Stat(o.dockerfilePath); err != nil {
			return err
		}
	}
	if o.port != 0 {
		if err := validateSvcPort(o.port); err != nil {
			return err
		}
	}

	if o.image != "" && o.wkldType == manifestinfo.RequestDrivenWebServiceType {
		if err := validateAppRunnerImage(o.image); err != nil {
			return err
		}
	}
	if len(o.sourcePaths) != 0 {
		if o.wkldType != manifestinfo.StaticSiteType {
			return fmt.Errorf("'--%s' must be specified with '--%s %q'", sourcesFlag, typeFlag, manifestinfo.StaticSiteType)
		}
		if err := o.validateSourcePaths(o.sourcePaths); err != nil {
			return err
		}
		assets, err := o.convertStringsToAssets(o.sourcePaths)
		if err != nil {
			return fmt.Errorf("convert source strings to objects: %w", err)
		}
		o.staticAssets = assets
	}
	if err := validateSubscribe(o.noSubscribe, o.subscriptions); err != nil {
		return err
	}
	if err := o.validateIngressType(); err != nil {
		return err
	}
	return nil
}