fix: load local archive
This commit is contained in:
		| @@ -11,6 +11,7 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/cavaliergopher/grab/v3" | ||||||
| 	"github.com/naoina/toml" | 	"github.com/naoina/toml" | ||||||
| 	"github.com/remeh/sizedwaitgroup" | 	"github.com/remeh/sizedwaitgroup" | ||||||
| 	"github.com/rs/zerolog/log" | 	"github.com/rs/zerolog/log" | ||||||
| @@ -21,6 +22,7 @@ import ( | |||||||
| 	"code.dumpstack.io/tools/out-of-tree/config/dotfiles" | 	"code.dumpstack.io/tools/out-of-tree/config/dotfiles" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/container" | 	"code.dumpstack.io/tools/out-of-tree/container" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/distro" | 	"code.dumpstack.io/tools/out-of-tree/distro" | ||||||
|  | 	"code.dumpstack.io/tools/out-of-tree/fs" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/kernel" | 	"code.dumpstack.io/tools/out-of-tree/kernel" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -174,10 +176,22 @@ func (cmd *KernelCmd) fetchContainerCache(c container.Container) { | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	path := cache.ContainerURL(c.Name()) | 	tmp, err := fs.TempDir() | ||||||
| 	err := container.Load(path, c.Name()) | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 	defer os.RemoveAll(tmp) | ||||||
|  |  | ||||||
|  | 	resp, err := grab.Get(tmp, cache.ContainerURL(c.Name())) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer os.Remove(resp.Filename) | ||||||
|  |  | ||||||
|  | 	err = container.Load(resp.Filename, c.Name()) | ||||||
| 	if err == nil { | 	if err == nil { | ||||||
| 		log.Info().Msgf("container %s -> %s", path, c.Name()) | 		log.Info().Msgf("use prebuilt container %s", c.Name()) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -77,13 +77,13 @@ func Images() (diis []Image, err error) { | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func Load(path string, name string) (err error) { | func Load(localpath string, name string) (err error) { | ||||||
| 	exist := Container{name: name}.Exist() | 	exist := Container{name: name}.Exist() | ||||||
| 	if exist && UseCache { | 	if exist && UseCache { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	cmd := exec.Command(Runtime, "load", "-i", path) | 	cmd := exec.Command(Runtime, "load", "-i", localpath) | ||||||
| 	log.Debug().Msgf("%v", cmd) | 	log.Debug().Msgf("%v", cmd) | ||||||
|  |  | ||||||
| 	raw, err := cmd.CombinedOutput() | 	raw, err := cmd.CombinedOutput() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user