mirror of
https://github.com/mudler/LocalAI.git
synced 2024-12-21 13:37:51 +00:00
47 lines
941 B
Go
47 lines
941 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
|
||
|
"github.com/go-skynet/LocalAI/pkg/downloader"
|
||
|
"github.com/go-skynet/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 {
|
||
|
if err := downloader.DownloadFile(asset.URL, filepath.Join(destPath, asset.FileName), asset.SHA, 1, 1, utils.DisplayDownloadFunction); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fmt.Println("Finished downloading assets")
|
||
|
}
|