v0.9.0: Storage paths registry, per-app HDD_PATH resolution, storage management UI
- Fix backup toggles not appearing (read each app's own HDD_PATH from app.yaml) - Storage paths registry in settings.json with auto-discovery from deployed apps - Settings page "Adattárolók" section with disk usage, add/remove/default/schedulable - Deploy page path field as dropdown of registered storage paths - Health check storage monitoring (mount point, disk usage alerts) - Mount-point validation utilities (Linux syscall + cross-platform stubs) - Controller docker-compose mount changed to /mnt:/mnt:rw for multi-storage Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
//go:build !linux
|
||||
|
||||
package system
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// IsMountPoint always returns true on non-Linux (assume OK for dev/testing).
|
||||
func IsMountPoint(_ string) bool { return true }
|
||||
|
||||
// IsWritable checks if the given path is writable by attempting to create+remove a temp file.
|
||||
func IsWritable(path string) bool {
|
||||
testFile := filepath.Join(path, ".felhom-write-test")
|
||||
f, err := os.Create(testFile)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
f.Close()
|
||||
os.Remove(testFile)
|
||||
return true
|
||||
}
|
||||
|
||||
// PathsOverlap returns true if one path is a parent or child of the other.
|
||||
func PathsOverlap(a, b string) bool {
|
||||
a = filepath.Clean(a)
|
||||
b = filepath.Clean(b)
|
||||
if a == b {
|
||||
return true
|
||||
}
|
||||
aSep := a + string(os.PathSeparator)
|
||||
bSep := b + string(os.PathSeparator)
|
||||
return strings.HasPrefix(aSep, bSep) || strings.HasPrefix(bSep, aSep)
|
||||
}
|
||||
|
||||
// DiskUsageInfo holds disk usage statistics for a path.
|
||||
type DiskUsageInfo struct {
|
||||
TotalGB float64
|
||||
UsedGB float64
|
||||
AvailGB float64
|
||||
UsedPercent float64
|
||||
TotalHuman string
|
||||
UsedHuman string
|
||||
}
|
||||
|
||||
// GetDiskUsage returns nil on non-Linux.
|
||||
func GetDiskUsage(_ string) *DiskUsageInfo { return nil }
|
||||
Reference in New Issue
Block a user