in initialize.go [82:105]
func FetchLibraryByGetterString(ctx context.Context, getterString, dstDir string) (fs.FS, error) {
baseDir := environment.AlzLibDir()
dst := filepath.Join(baseDir, dstDir)
client := getter.Client{
DisableSymlinks: true,
}
wd, err := os.Getwd()
if err != nil {
return nil, fmt.Errorf("FetchLibraryByGetterString: error getting working directory: %w", err)
}
if err := os.RemoveAll(dst); err != nil {
return nil, fmt.Errorf("FetchLibraryByGetterString: error cleaning destination directory %s: %w", dst, err)
}
req := &getter.Request{
Src: getterString,
Dst: dst,
Pwd: wd,
}
_, err = client.Get(ctx, req)
if err != nil {
return nil, fmt.Errorf("FetchLibraryByGetterString: error fetching library. source `%s`, destination `%s`, wd `%s`: %w", getterString, dst, wd, err)
}
return os.DirFS(dst), nil
}