feat: add update for debian release
This commit is contained in:
		| @@ -261,7 +261,8 @@ func findKbuild(versions []string, kpkgver string) ( | ||||
| } | ||||
|  | ||||
| func getKernelsByVersion(slog zerolog.Logger, c *Cache, toolsVersions []string, | ||||
| 	version string) (kernels []DebianKernel, fromcache bool) { | ||||
| 	version string, mode GetKernelsMode) (kernels []DebianKernel, | ||||
| 	fromcache bool) { | ||||
|  | ||||
| 	var dk DebianKernel | ||||
| 	dks, err := c.Get(version) | ||||
| @@ -269,6 +270,18 @@ func getKernelsByVersion(slog zerolog.Logger, c *Cache, toolsVersions []string, | ||||
| 		dk = dks[0] | ||||
| 		if !dk.Internal.Invalid { | ||||
| 			slog.Trace().Msgf("found in cache") | ||||
| 			if dk.Release == None && mode&UpdateRelease != 0 { | ||||
| 				slog.Debug().Msg("update release") | ||||
| 				dk.Release = getRelease(dk.Image) | ||||
| 				if dk.Release != None { | ||||
| 					slog.Debug().Msg("update cache") | ||||
| 					err = c.Put([]DebianKernel{dk}) | ||||
| 					if err != nil { | ||||
| 						slog.Error().Err(err).Msg("") | ||||
| 						return | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			kernels = append(kernels, dk) | ||||
| 			fromcache = true | ||||
| 			return | ||||
| @@ -338,9 +351,18 @@ var ( | ||||
| 	RefetchDays int = 14 | ||||
| ) | ||||
|  | ||||
| type GetKernelsMode int | ||||
|  | ||||
| const ( | ||||
| 	NoMode GetKernelsMode = iota | ||||
| 	UpdateRelease | ||||
| ) | ||||
|  | ||||
| // GetKernelsWithLimit is workaround for testing and building the | ||||
| // first cache, which is heavily rate limited by snapshot.debian.org | ||||
| func GetKernelsWithLimit(limit int) (kernels []DebianKernel, err error) { | ||||
| func GetKernelsWithLimit(limit int, mode GetKernelsMode) (kernels []DebianKernel, | ||||
| 	err error) { | ||||
|  | ||||
| 	if CachePath == "" { | ||||
| 		CachePath = config.File("debian.cache") | ||||
| 		log.Debug().Msgf("Use default kernels cache path: %s", CachePath) | ||||
| @@ -385,7 +407,7 @@ func GetKernelsWithLimit(limit int) (kernels []DebianKernel, err error) { | ||||
| 	for i, version := range versions { | ||||
| 		slog := log.With().Str("version", version).Logger() | ||||
| 		slog.Trace().Msgf("%03d/%03d", i, len(versions)) | ||||
| 		vkernels, fromcache := getKernelsByVersion(slog, c, toolsVersions, version) | ||||
| 		vkernels, fromcache := getKernelsByVersion(slog, c, toolsVersions, version, mode) | ||||
| 		kernels = append(kernels, vkernels...) | ||||
| 		if !fromcache { | ||||
| 			limit-- | ||||
| @@ -399,5 +421,5 @@ func GetKernelsWithLimit(limit int) (kernels []DebianKernel, err error) { | ||||
| } | ||||
|  | ||||
| func GetKernels() (kernels []DebianKernel, err error) { | ||||
| 	return GetKernelsWithLimit(math.MaxInt32) | ||||
| 	return GetKernelsWithLimit(math.MaxInt32, NoMode) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user