in commands/helpers/cache_extractor.go [222:263]
func (c *CacheExtractorCommand) Execute(cliContext *cli.Context) {
log.SetRunnerFormatter()
wd, err := os.Getwd()
if err != nil {
logrus.Fatalln("Unable to get working directory")
}
if c.File == "" {
warningln("Missing cache file")
}
if c.URL != "" || c.GoCloudURL != "" {
err := c.doRetry(c.download)
if err != nil {
warningln(err)
}
} else {
logrus.Infoln(
"No URL provided, cache will not be downloaded from shared cache server. " +
"Instead a local version of cache will be extracted.")
}
f, size, format, err := openArchive(c.File)
if os.IsNotExist(err) {
warningln("Cache file does not exist")
}
if err != nil {
logrus.Fatalln(err)
}
defer f.Close()
extractor, err := archive.NewExtractor(format, f, size, wd)
if err != nil {
logrus.Fatalln(err)
}
err = extractor.Extract(context.Background())
if err != nil {
logrus.Fatalln(err)
}
}