// Package appbackup holds the self-contained app-data backup primitives: // database dump and Docker-volume archive discovery/execution, plus the // keep-side storage path helpers. It depends only on stable abstractions // (the StackDataProvider interface) and has no dependency on the restic, // cross-drive, or drive-mount code in the backup package. package appbackup import "path/filepath" // FelhomDataDir is the namespace directory on storage drives for all felhom-managed data. const FelhomDataDir = "felhom-data" // PrimaryBackupPath returns the root primary backup directory for a drive. func PrimaryBackupPath(drivePath string) string { return filepath.Join(drivePath, FelhomDataDir, "backups", "primary") } // AppDBDumpPath returns the DB dump directory for an app on its home drive. func AppDBDumpPath(drivePath, stackName string) string { return filepath.Join(drivePath, FelhomDataDir, "backups", "primary", stackName, "db-dumps") } // AppVolumeDumpPath returns the directory for Docker volume dump tars on an app's home drive. func AppVolumeDumpPath(drivePath, stackName string) string { return filepath.Join(drivePath, FelhomDataDir, "backups", "primary", stackName, "volume-dumps") } // AppDataDir returns the app data directory path on a drive. func AppDataDir(drivePath, stackName string) string { return filepath.Join(drivePath, FelhomDataDir, "appdata", stackName) }