func (command *CheckCommand) checkByRegex(request CheckRequest) (CheckResponse, error) { extractions := versions.GetBucketFileVersions(command.s3client, request.Source) response := CheckResponse{} if len(extractions) == 0 { return response, nil } if request.Version.Path == "" { lastExtraction := extractions[len(extractions)-1] version := s3resource.Version{ Path: lastExtraction.Path, } response = append(response, version) } else { lastVersion, ok := versions.Extract(request.Version.Path, request.Source.Regexp) if !ok { return response, fmt.Errorf("version number could not be found in: %s", request.Version.Path) } for _, extraction := range extractions { if extraction.Version.GreaterThan(lastVersion.Version) { version := s3resource.Version{ Path: extraction.Path, } response = append(response, version) } } } return response, nil }
func (command *InCommand) pathToDownload(request InRequest) (string, error) { if request.Version.Path == "" { extractions := versions.GetBucketFileVersions(command.s3client, request.Source) if len(extractions) == 0 { return "", errors.New("no extractions could be found - is your regexp correct?") } lastExtraction := extractions[len(extractions)-1] return lastExtraction.Path, nil } return request.Version.Path, nil }