1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
package sysfs
import (
"os"
)
var (
Block Subsystem = "/sys/block"
Bus Subsystem = "/sys/bus"
Class Subsystem = "/sys/class"
Dev Subsystem = "/sys/dev"
Devices Subsystem = "/sys/devices"
Firmware Subsystem = "/sys/firmware"
FS Subsystem = "/sys/fs"
Hypervision Subsystem = "/sys/hypervisor"
Kernel Subsystem = "/sys/kernel"
Module Subsystem = "/sys/module"
Power Subsystem = "/sys/power"
)
// func exists(filename string) bool {
// _, err := os.Stat(filename)
// return err == nil
// }
func dirExists(dirname string) bool {
info, err := os.Stat(dirname)
return err == nil && info.IsDir()
}
func fileExists(dirname string) bool {
info, err := os.Stat(dirname)
return err == nil && !info.IsDir()
}
func lsFiles(dir string, callback func(name string)) error {
f, err := os.Open(dir)
if err != nil {
return err
}
defer f.Close()
fileInfos, err := f.Readdir(-1)
if err != nil {
return err
}
for i := range fileInfos {
if !fileInfos[i].IsDir() {
callback(fileInfos[i].Name())
}
}
return nil
}
func lsDirs(dir string, callback func(name string)) error {
f, err := os.Open(dir)
if err != nil {
return err
}
defer f.Close()
fileInfos, err := f.Readdir(-1)
if err != nil {
return err
}
for i := range fileInfos {
if fileInfos[i].IsDir() {
callback(fileInfos[i].Name())
}
}
return nil
}
|