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
}