aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/host/machine_info_linux.go
diff options
context:
space:
mode:
authorJoey Jiaojg <joeyjiaojg@gmail.com>2021-05-26 19:38:04 +0800
committerGitHub <noreply@github.com>2021-05-26 13:38:04 +0200
commit3da9017c17c7d2432c4b76345c4d2efbeedd2935 (patch)
tree47e9b10fc542a1f5a1c785027ec6d2fce1a7dfef /pkg/host/machine_info_linux.go
parent1f4e6ed95868861aae449b3630e6cfe5a2b96c93 (diff)
pkg/compiler: add glob type
* all: add new typename dirname The current way to check files under sysfs or proc is: - define a string to represent each file - open the file - pass the fd to write / read / close The issues above are: - Need to know what file present on target device - Need to write openat for each file With dirname added, which will open one file in the directory randomly and then pass the fd to write/read/close. * all: use typename glob to match filename Fixes #481
Diffstat (limited to 'pkg/host/machine_info_linux.go')
-rw-r--r--pkg/host/machine_info_linux.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkg/host/machine_info_linux.go b/pkg/host/machine_info_linux.go
index 317d34cd9..3b0971495 100644
--- a/pkg/host/machine_info_linux.go
+++ b/pkg/host/machine_info_linux.go
@@ -21,6 +21,7 @@ func init() {
{"KVM", readKVMInfo},
}
machineModulesInfo = getModulesInfo
+ machineGlobsInfo = getGlobsInfo
}
func readCPUInfo(buffer *bytes.Buffer) error {
@@ -140,3 +141,16 @@ func getModulesInfo() ([]KernelModule, error) {
}
return modules, nil
}
+
+func getGlobsInfo(globs []string) (map[string][]string, error) {
+ files := make(map[string][]string, len(globs))
+ for _, glob := range globs {
+ matches, err := filepath.Glob(glob)
+ if err != nil {
+ return nil, err
+ }
+ files[glob] = matches
+ }
+
+ return files, nil
+}