fix: load local archive
This commit is contained in:
		| @@ -11,6 +11,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/cavaliergopher/grab/v3" | ||||
| 	"github.com/naoina/toml" | ||||
| 	"github.com/remeh/sizedwaitgroup" | ||||
| 	"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/container" | ||||
| 	"code.dumpstack.io/tools/out-of-tree/distro" | ||||
| 	"code.dumpstack.io/tools/out-of-tree/fs" | ||||
| 	"code.dumpstack.io/tools/out-of-tree/kernel" | ||||
| ) | ||||
|  | ||||
| @@ -174,10 +176,22 @@ func (cmd *KernelCmd) fetchContainerCache(c container.Container) { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	path := cache.ContainerURL(c.Name()) | ||||
| 	err := container.Load(path, c.Name()) | ||||
| 	tmp, err := fs.TempDir() | ||||
| 	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 { | ||||
| 		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 | ||||
| } | ||||
|  | ||||
| func Load(path string, name string) (err error) { | ||||
| func Load(localpath string, name string) (err error) { | ||||
| 	exist := Container{name: name}.Exist() | ||||
| 	if exist && UseCache { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	cmd := exec.Command(Runtime, "load", "-i", path) | ||||
| 	cmd := exec.Command(Runtime, "load", "-i", localpath) | ||||
| 	log.Debug().Msgf("%v", cmd) | ||||
|  | ||||
| 	raw, err := cmd.CombinedOutput() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user