v1.9.0
IMPROVED: * Removed *BROKEN* dep. lrn2fixurshitk
This commit is contained in:
44
fsutils/funcs_fsattrs_linux.go
Normal file
44
fsutils/funcs_fsattrs_linux.go
Normal file
@@ -0,0 +1,44 @@
|
||||
//go:build linux
|
||||
|
||||
package fsutils
|
||||
|
||||
import (
|
||||
`os`
|
||||
`reflect`
|
||||
|
||||
`r00t2.io/sysutils/paths`
|
||||
)
|
||||
|
||||
func (f *FsAttrs) Apply(path string) (err error) {
|
||||
|
||||
var file *os.File
|
||||
var reflectVal reflect.Value
|
||||
var fieldVal reflect.Value
|
||||
|
||||
var myPath string = path
|
||||
|
||||
if err = paths.RealPath(&myPath); err != nil {
|
||||
return
|
||||
}
|
||||
if file, err = os.Open(myPath); err != nil {
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
reflectVal = reflect.ValueOf(*f)
|
||||
|
||||
for attrNm, attrVal := range AttrNameValueMap {
|
||||
fieldVal = reflectVal.FieldByName(attrNm)
|
||||
if fieldVal.Bool() {
|
||||
if err = setAttrs(file, attrVal); err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if err = unsetAttrs(file, attrVal); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user