func()

in ecs-cli/modules/cli/local/localproject/project.go [113:160]


func (p *LocalProject) ReadTaskDefinition() error {
	remote := p.context.String(flags.TaskDefinitionRemote)
	filename := p.context.String(flags.TaskDefinitionFile)

	if remote != "" && filename != "" {
		return fmt.Errorf("cannot specify both --%s and --%s flags", flags.TaskDefinitionRemote, flags.TaskDefinitionFile)
	}

	var taskDefinition *ecs.TaskDefinition
	var err error

	if remote != "" {
		taskDefinition, err = p.readTaskDefinitionFromRemote(remote)
		if err != nil {
			return err
		}

	} else if filename != "" {
		filename, err = filepath.Abs(filename)
		if err != nil {
			return err
		}

		taskDefinition, err = p.readTaskDefinitionFromFile(filename)
		if err != nil {
			return err
		}

	} else if defaultInputExists() {
		filename, err = filepath.Abs(LocalInFileName)
		if err != nil {
			return err
		}

		taskDefinition, err = p.readTaskDefinitionFromFile(filename)
		if err != nil {
			return err
		}
	}

	if taskDefinition == nil {
		return fmt.Errorf("could not detect valid task definition (either set one of --%s or --%s flags, or define a %s file)",
			flags.TaskDefinitionFile, flags.TaskDefinitionRemote, LocalInFileName)
	}

	p.taskDefinition = taskDefinition
	return nil
}