File size: 952 Bytes
7def60a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main

import (
	"fmt"
	"os"
	"path/filepath"

	"github.com/mudler/LocalAI/pkg/downloader"
	"github.com/mudler/LocalAI/pkg/utils"
	"gopkg.in/yaml.v3"
)

type Asset struct {
	FileName string `yaml:"filename"`
	URL      string `yaml:"url"`
	SHA      string `yaml:"sha"`
}

func main() {

	// read the YAML file which contains a list of assets
	// and download them in the asset path
	assets := []Asset{}

	assetFile := os.Args[1]
	destPath := os.Args[2]

	// read the YAML file
	f, err := os.ReadFile(assetFile)
	if err != nil {
		panic(err)
	}
	// unmarshal the YAML data into a struct
	if err := yaml.Unmarshal(f, &assets); err != nil {
		panic(err)
	}

	// download the assets
	for _, asset := range assets {
		uri := downloader.URI(asset.URL)
		if err := uri.DownloadFile(filepath.Join(destPath, asset.FileName), asset.SHA, 1, 1, utils.DisplayDownloadFunction); err != nil {
			panic(err)
		}
	}

	fmt.Println("Finished downloading assets")
}