feat: support for excluding kernels using regex

这个提交包含在:
2023-05-25 18:35:27 +00:00
父节点 0dceacd2df
当前提交 1a9fdf0917
共有 2 个文件被更改,包括 34 次插入4 次删除

查看文件

@ -25,6 +25,7 @@ type Kernel struct {
// prev. ReleaseMask // prev. ReleaseMask
Regex string Regex string
ExcludeRegex string
} }
// Target defines the kernel // Target defines the kernel
@ -178,7 +179,25 @@ func (ka Artifact) checkSupport(ki distro.KernelInfo, target Target) (
} }
} }
supported, err = regexp.MatchString(target.Kernel.Regex, ki.KernelRelease) r, err := regexp.Compile(target.Kernel.Regex)
if err != nil {
return
}
exr, err := regexp.Compile(target.Kernel.ExcludeRegex)
if err != nil {
return
}
if !r.MatchString(ki.KernelRelease) {
return
}
if target.Kernel.ExcludeRegex != "" && exr.MatchString(ki.KernelRelease) {
return
}
supported = true
return return
} }

查看文件

@ -33,10 +33,21 @@ func MatchPackages(km config.Target) (packages []string, err error) {
return return
} }
for _, pkg := range pkgs { exr, err := regexp.Compile(km.Kernel.ExcludeRegex)
if r.MatchString(pkg) { if err != nil {
packages = append(packages, pkg) return
} }
for _, pkg := range pkgs {
if !r.MatchString(pkg) {
continue
}
if km.Kernel.ExcludeRegex != "" && exr.MatchString(pkg) {
continue
}
packages = append(packages, pkg)
} }
return return