Expose error variables
This commit is contained in:
parent
7e545586bc
commit
5b396e7b5e
@ -2,6 +2,7 @@ package debian
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"code.dumpstack.io/tools/out-of-tree/distro/debian/snapshot"
|
"code.dumpstack.io/tools/out-of-tree/distro/debian/snapshot"
|
||||||
@ -24,14 +25,34 @@ type DebianKernel struct {
|
|||||||
Headers snapshot.Package
|
Headers snapshot.Package
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrNoBinaryPackages = errors.New("no binary packages found")
|
||||||
|
ErrNoHeadersPackage = errors.New("no headers package found")
|
||||||
|
ErrNoImagePackage = errors.New("no image package found")
|
||||||
|
)
|
||||||
|
|
||||||
func GetDebianKernel(version string) (dk DebianKernel, err error) {
|
func GetDebianKernel(version string) (dk DebianKernel, err error) {
|
||||||
dk.Version.Package = version
|
dk.Version.Package = version
|
||||||
|
|
||||||
regex := `^linux-(image|headers)-[0-9\.\-]*-(amd64|amd64-unsigned)$`
|
regex := `^linux-(image|headers)-[0-9\.\-]*-(amd64|amd64-unsigned)$`
|
||||||
|
|
||||||
packages, err := snapshot.Packages("linux", version, "amd64", regex)
|
packages, err := snapshot.Packages("linux", version, "amd64", regex)
|
||||||
if len(packages) != 2 {
|
if len(packages) == 0 {
|
||||||
err = errors.New("len(packages) != 2")
|
err = ErrNoBinaryPackages
|
||||||
|
return
|
||||||
|
} else if len(packages) == 1 {
|
||||||
|
if strings.Contains(packages[0].Name, "image") {
|
||||||
|
err = ErrNoHeadersPackage
|
||||||
|
return
|
||||||
|
} else if strings.Contains(packages[0].Name, "headers") {
|
||||||
|
err = ErrNoImagePackage
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
err = fmt.Errorf("wtf? %v", packages[0].Name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else if len(packages) > 2 {
|
||||||
|
err = errors.New("more than two binary packages found")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user