Major: 2, Minor: 4, Patch: 1, Pre: []bsemver.PRVersion{ {VersionStr: "edge"}, {VersionNum: 12, IsNum: true}, }, }, nil case "2.4.1": return bsemver.Version{Major: 2, Minor: 4, Patch: 1}, nil default: panic(fmt.Sprintf("unrecognized input: %s", input)) } } s = sorter.NewSorter(fakeLogger, fakeSemverConverter) }) Describe("SortBySemver", func() { It("sorts descending", func() { input := releasesWithVersions( "1.0.0", "2.4.1", "2.0.0", "2.4.1-edge.12", "2.4.1-edge.11", ) returned, err := s.SortBySemver(input) Expect(err).NotTo(HaveOccurred()) Expect(versionsFromReleases(returned)).To(Equal( []string{"2.4.1", "2.4.1-edge.12", "2.4.1-edge.11", "2.0.0", "1.0.0"})) })
func main() { if version == "" { version = "dev" } var input concourse.CheckRequest logFile, err := ioutil.TempFile("", "pivnet-check.log") if err != nil { log.Printf("could not create log file") } logger := log.New(logFile, "", log.LstdFlags) logger.Printf("PivNet Resource version: %s", version) err = json.NewDecoder(os.Stdin).Decode(&input) if err != nil { log.Fatalf("Exiting with error: %s", err) } sanitized := concourse.SanitizedSource(input.Source) logger.SetOutput(sanitizer.NewSanitizer(sanitized, logFile)) verbose := false ls := logshim.NewLogShim(logger, logger, verbose) err = validator.NewCheckValidator(input).Validate() if err != nil { log.Fatalf("Exiting with error: %s", err) } var endpoint string if input.Source.Endpoint != "" { endpoint = input.Source.Endpoint } else { endpoint = pivnet.DefaultHost } clientConfig := pivnet.ClientConfig{ Host: endpoint, Token: input.Source.APIToken, UserAgent: useragent.UserAgent(version, "check", input.Source.ProductSlug), } client := gp.NewClient( clientConfig, ls, ) f := filter.NewFilter(ls) semverConverter := semver.NewSemverConverter(ls) s := sorter.NewSorter(ls, semverConverter) response, err := check.NewCheckCommand( ls, version, f, client, s, logFile.Name(), ).Run(input) if err != nil { log.Fatalf("Exiting with error: %s", err) } err = json.NewEncoder(os.Stdout).Encode(response) if err != nil { log.Fatalf("Exiting with error: %s", err) } }