// storeCustomImageMetadata reads the custom image metadata from disk, // and stores the files in environment storage with the same relative // paths. func (c *BootstrapCommand) storeCustomImageMetadata(stor storage.Storage) error { logger.Debugf("storing custom image metadata from %q", c.ImageMetadataDir) return filepath.Walk(c.ImageMetadataDir, func(abspath string, info os.FileInfo, err error) error { if err != nil { return err } if !info.Mode().IsRegular() { return nil } relpath, err := filepath.Rel(c.ImageMetadataDir, abspath) if err != nil { return err } f, err := os.Open(abspath) if err != nil { return err } defer f.Close() relpath = filepath.ToSlash(relpath) logger.Debugf("storing %q in model storage (%d bytes)", relpath, info.Size()) return stor.Put(relpath, f, info.Size()) }) }