mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
- module github.com/R0m1k3/Loki, cmd/loki, internal/loki (package loki) - LOKI_HOME, LOKI_MODEL_DIRS, LOKI_SERVICE, LOKI_DL_CONNS ; /etc/loki ; units loki-engine / loki-ui ; binaire et aide CLI - updateRepo pointe sur R0m1k3/Loki (l'auto-update ne tirera plus les binaires AJEAN amont) Conservé à l'identique : le domaine ajean.link (service de tunnel amont), les littéraux de migration 0.7.x (migrate_07.go), RELEASE_NOTES.md et LICENSE (historique et licence de l'amont). go build/vet/test : verts.
27 lines
795 B
Go
27 lines
795 B
Go
//go:build !windows
|
|
|
|
package loki
|
|
|
|
// sys_disk_other.go — espace libre d'un système de fichiers via statfs(2).
|
|
// Bavail (et pas Bfree) : les blocs réservés à root ne sont pas utilisables pour
|
|
// poser un .gguf de 40 Go.
|
|
|
|
import "syscall"
|
|
|
|
// diskFreeAt renvoie les octets libres du système de fichiers contenant dir, ou
|
|
// -1 si la mesure échoue. dir doit exister (l'appelant remonte les parents au
|
|
// besoin).
|
|
func diskFreeAt(dir string) int64 {
|
|
var st syscall.Statfs_t
|
|
if err := syscall.Statfs(dir, &st); err != nil {
|
|
return -1
|
|
}
|
|
// Les types de Bavail/Bsize diffèrent selon l'OS (int64 sous Linux, uint64
|
|
// et uint32 sous macOS) : on passe par uint64 avant de multiplier.
|
|
free := uint64(st.Bavail) * uint64(st.Bsize)
|
|
if free > 1<<62 {
|
|
return -1
|
|
}
|
|
return int64(free)
|
|
}
|