mirror of
https://github.com/rancher/os.git
synced 2025-09-06 17:22:34 +00:00
- Buildroot 2022.02.8 -- with cherry-picked memory leak fix for dhcpcd - Kernel 5.10.162 - Docker 23.0.0-rc.3 - System-docker 17.06.107 - Removed debugging tool system-docker-containerd-ctr - Build ros binary with Go version 1.19.5 - Improve debug mode by disabling auto reboot and asking resolution
39 lines
843 B
Go
39 lines
843 B
Go
//go:build linux
|
|
// +build linux
|
|
|
|
package util
|
|
|
|
/*
|
|
#cgo LDFLAGS: -lmount -lblkid -luuid
|
|
#include<blkid/blkid.h>
|
|
#include<libmount/libmount.h>
|
|
#include<stdlib.h>
|
|
*/
|
|
import "C"
|
|
import "unsafe"
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// ResolveDevice this isn't reliable - blkid -L LABEL works more often :(
|
|
func ResolveDevice(spec string) string {
|
|
cSpec := C.CString(spec)
|
|
defer C.free(unsafe.Pointer(cSpec))
|
|
cString := C.blkid_evaluate_spec(cSpec, nil)
|
|
defer C.free(unsafe.Pointer(cString))
|
|
return C.GoString(cString)
|
|
}
|
|
|
|
func GetFsType(device string) (string, error) {
|
|
var ambi *C.int
|
|
cDevice := C.CString(device)
|
|
defer C.free(unsafe.Pointer(cDevice))
|
|
cString := C.mnt_get_fstype(cDevice, ambi, nil)
|
|
defer C.free(unsafe.Pointer(cString))
|
|
if cString != nil {
|
|
return C.GoString(cString), nil
|
|
}
|
|
return "", errors.New("Error while getting fstype")
|
|
}
|