func main() { if version == "" { version = "dev" } logger := log.New(os.Stderr, "", log.LstdFlags) logger.Printf("PivNet Resource version: %s", version) if len(os.Args) < 2 { log.Fatalf("not enough args - usage: %s <sources directory>", os.Args[0]) } downloadDir := os.Args[1] var input concourse.InRequest err := json.NewDecoder(os.Stdin).Decode(&input) if err != nil { log.Fatalln(err) } sanitized := concourse.SanitizedSource(input.Source) logger.SetOutput(sanitizer.NewSanitizer(sanitized, os.Stderr)) verbose := false ls := logshim.NewLogShim(logger, logger, verbose) logger.Printf("Creating download directory: %s", downloadDir) err = os.MkdirAll(downloadDir, os.ModePerm) if err != nil { log.Fatalf("Exiting with error: %s", err) } err = validator.NewInValidator(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, "get", input.Source.ProductSlug), } client := gp.NewClient( clientConfig, ls, ) d := downloader.NewDownloader(client, downloadDir, ls, os.Stderr) fs := md5sum.NewFileSummer() f := filter.NewFilter(ls) fileWriter := filesystem.NewFileWriter(downloadDir, ls) response, err := in.NewInCommand( ls, client, f, d, fs, fileWriter, ).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) } }
if strings.HasSuffix(path, f) { return fileContentsMD5s[i], nil } } Fail(fmt.Sprintf("unexpected path: %s", path)) return "", nil } logger := log.New(GinkgoWriter, "", log.LstdFlags) fakeLogger = logshim.NewLogShim(logger, logger, true) inCommand = in.NewInCommand( fakeLogger, fakePivnetClient, fakeFilter, fakeDownloader, fakeFileSummer, fakeFileWriter, ) }) It("invokes the version file writer with downloaded version and fingerprint", func() { _, err := inCommand.Run(inRequest) Expect(err).NotTo(HaveOccurred()) Expect(fakeFileWriter.WriteVersionFileCallCount()).To(Equal(1)) Expect(fakeFileWriter.WriteVersionFileArgsForCall(0)).To(Equal(versionWithFingerprint)) }) It("invokes the json metadata file writer with correct metadata", func() { _, err := inCommand.Run(inRequest)