1
0
mirror of https://github.com/rancher/os.git synced 2025-09-06 17:22:34 +00:00
Files
os/pkg/util/cutil.go
Olli Janatuinen 4148642e5f v2.0.0-beta6
- 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
2023-01-22 14:16:32 +01:00

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")
}