|
|
@ -33,6 +33,8 @@ var (
|
|
|
|
oracleReleaseRegexp = regexp.MustCompile(`(?P<os>Oracle) (Linux Server release) (?P<version>[\d]+)`)
|
|
|
|
oracleReleaseRegexp = regexp.MustCompile(`(?P<os>Oracle) (Linux Server release) (?P<version>[\d]+)`)
|
|
|
|
centosReleaseRegexp = regexp.MustCompile(`(?P<os>[^\s]*) (Linux release|release) (?P<version>[\d]+)`)
|
|
|
|
centosReleaseRegexp = regexp.MustCompile(`(?P<os>[^\s]*) (Linux release|release) (?P<version>[\d]+)`)
|
|
|
|
redhatReleaseRegexp = regexp.MustCompile(`(?P<os>Red Hat Enterprise Linux) (Client release|Server release|Workstation release) (?P<version>[\d]+)`)
|
|
|
|
redhatReleaseRegexp = regexp.MustCompile(`(?P<os>Red Hat Enterprise Linux) (Client release|Server release|Workstation release) (?P<version>[\d]+)`)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filenames = []string{"etc/oracle-release", "etc/centos-release", "etc/redhat-release", "etc/system-release"}
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type detector struct{}
|
|
|
|
type detector struct{}
|
|
|
@ -42,7 +44,7 @@ func init() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (d detector) Detect(files tarutil.FilesMap) (*database.Namespace, error) {
|
|
|
|
func (d detector) Detect(files tarutil.FilesMap) (*database.Namespace, error) {
|
|
|
|
for _, filePath := range d.RequiredFilenames() {
|
|
|
|
for _, filePath := range filenames {
|
|
|
|
f, hasFile := files[filePath]
|
|
|
|
f, hasFile := files[filePath]
|
|
|
|
if !hasFile {
|
|
|
|
if !hasFile {
|
|
|
|
continue
|
|
|
|
continue
|
|
|
@ -83,5 +85,5 @@ func (d detector) Detect(files tarutil.FilesMap) (*database.Namespace, error) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (d detector) RequiredFilenames() []string {
|
|
|
|
func (d detector) RequiredFilenames() []string {
|
|
|
|
return []string{"etc/oracle-release", "etc/centos-release", "etc/redhat-release", "etc/system-release"}
|
|
|
|
return []string{`^etc/(oracle|centos|redhat|system)-release`}
|
|
|
|
}
|
|
|
|
}
|
|
|
|