@@ -58,6 +58,15 @@ type options struct {
5858	expectedDigest  digest.Digest 
5959}
6060
61+ func  (o  * options ) apply (opts  []Opt ) error  {
62+ 	for  _ , f  :=  range  opts  {
63+ 		if  err  :=  f (o ); err  !=  nil  {
64+ 			return  err 
65+ 		}
66+ 	}
67+ 	return  nil 
68+ }
69+ 
6170type  Opt  func (* options ) error 
6271
6372// WithCache enables caching using filepath.Join(os.UserCacheDir(), "lima") as the cache dir. 
@@ -165,11 +174,10 @@ func readTime(path string) time.Time {
165174// The local path can be an empty string for "caching only" mode. 
166175func  Download (ctx  context.Context , local , remote  string , opts  ... Opt ) (* Result , error ) {
167176	var  o  options 
168- 	for  _ , f  :=  range  opts  {
169- 		if  err  :=  f (& o ); err  !=  nil  {
170- 			return  nil , err 
171- 		}
177+ 	if  err  :=  o .apply (opts ); err  !=  nil  {
178+ 		return  nil , err 
172179	}
180+ 
173181	var  localPath  string 
174182	if  local  ==  ""  {
175183		if  o .cacheDir  ==  ""  {
@@ -301,10 +309,8 @@ func Download(ctx context.Context, local, remote string, opts ...Opt) (*Result,
301309// When the cache path already exists, Cached returns Result with StatusUsedCache. 
302310func  Cached (remote  string , opts  ... Opt ) (* Result , error ) {
303311	var  o  options 
304- 	for  _ , f  :=  range  opts  {
305- 		if  err  :=  f (& o ); err  !=  nil  {
306- 			return  nil , err 
307- 		}
312+ 	if  err  :=  o .apply (opts ); err  !=  nil  {
313+ 		return  nil , err 
308314	}
309315	if  o .cacheDir  ==  ""  {
310316		return  nil , fmt .Errorf ("caching-only mode requires the cache directory to be specified" )
@@ -715,13 +721,11 @@ func writeFirst(path string, data []byte, perm os.FileMode) error {
715721// CacheEntries returns a map of cache entries. 
716722// The key is the SHA256 of the URL. 
717723// The value is the path to the cache entry. 
718- func  CacheEntries (opt  ... Opt ) (map [string ]string , error ) {
724+ func  CacheEntries (opts  ... Opt ) (map [string ]string , error ) {
719725	entries  :=  make (map [string ]string )
720726	var  o  options 
721- 	for  _ , f  :=  range  opt  {
722- 		if  err  :=  f (& o ); err  !=  nil  {
723- 			return  nil , err 
724- 		}
727+ 	if  err  :=  o .apply (opts ); err  !=  nil  {
728+ 		return  nil , err 
725729	}
726730	if  o .cacheDir  ==  ""  {
727731		return  entries , nil 
@@ -750,12 +754,10 @@ func CacheKey(remote string) string {
750754}
751755
752756// RemoveAllCacheDir removes the cache directory. 
753- func  RemoveAllCacheDir (opt  ... Opt ) error  {
757+ func  RemoveAllCacheDir (opts  ... Opt ) error  {
754758	var  o  options 
755- 	for  _ , f  :=  range  opt  {
756- 		if  err  :=  f (& o ); err  !=  nil  {
757- 			return  err 
758- 		}
759+ 	if  err  :=  o .apply (opts ); err  !=  nil  {
760+ 		return  err 
759761	}
760762	if  o .cacheDir  ==  ""  {
761763		return  nil 
0 commit comments