github.com/weaviate/weaviate@v1.24.6/usecases/cluster/disk_use_unix.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 //go:build !windows 13 14 package cluster 15 16 import ( 17 "syscall" 18 ) 19 20 // diskSpace return the disk space usage 21 func diskSpace(path string) (DiskUsage, error) { 22 fs := syscall.Statfs_t{} 23 err := syscall.Statfs(path, &fs) 24 if err != nil { 25 return DiskUsage{}, err 26 } 27 return DiskUsage{ 28 Total: fs.Blocks * uint64(fs.Bsize), 29 Available: fs.Bavail * uint64(fs.Bsize), 30 }, nil 31 }