Merge branch 'dev' into 'master'

Fix recursion problem

See merge request arm-research/smarter/smarter-device-manager!18
This commit is contained in:
Alexandre Ferreira 2021-05-18 21:16:01 +00:00
commit 8a304aa5ee

10
main.go
View File

@ -55,7 +55,7 @@ func init() {
flag.Parse()
}
func readDevDirectory(dirToList string) (files []string, err error) {
func readDevDirectory(dirToList string, allowedRecursions uint8) (files []string, err error) {
var foundFiles []string
fType, err := os.Stat(dirToList)
@ -79,13 +79,15 @@ func readDevDirectory(dirToList string) (files []string, err error) {
f.Close()
for _, subDir := range files {
foundFiles = append(foundFiles, subDir)
filesDir, err := readDevDirectory(dirToList+"/"+subDir)
if allowedRecursions > 0 {
filesDir, err := readDevDirectory(dirToList+"/"+subDir,allowedRecursions-1)
if err == nil {
for _, fileName := range filesDir {
foundFiles = append(foundFiles, subDir+"/"+fileName)
}
}
}
}
return foundFiles, nil
}
@ -127,13 +129,13 @@ func main() {
}
glog.V(0).Info("Reading existing devices on /dev")
ExistingDevices, err := readDevDirectory("/dev")
ExistingDevices, err := readDevDirectory("/dev",10)
if err != nil {
glog.Errorf(err.Error())
os.Exit(1)
}
ExistingDevicesSys, err := readDevDirectory("/sys/devices")
ExistingDevicesSys, err := readDevDirectory("/sys/devices",0)
if err != nil {
glog.Errorf(err.Error())
os.Exit(1)