Files
lemma/backend/internal/filesystem/paths.go

29 lines
860 B
Go

package filesystem
import (
"fmt"
"os"
"path/filepath"
"novamd/internal/models"
)
// GetWorkspacePath returns the file system path for a given workspace
func GetWorkspacePath(workspace *models.Workspace) string {
baseDir := os.Getenv("NOVAMD_WORKDIR")
if baseDir == "" {
baseDir = "./data" // Default if not set
}
return filepath.Join(baseDir, fmt.Sprintf("%d", workspace.UserID), workspace.Name)
}
// GetFilePath returns the file system path for a given file within a workspace
func GetFilePath(workspace *models.Workspace, relativeFilePath string) string {
return filepath.Join(GetWorkspacePath(workspace), relativeFilePath)
}
// EnsureWorkspaceDirectory creates the workspace directory if it doesn't exist
func EnsureWorkspaceDirectory(workspace *models.Workspace) error {
dir := GetWorkspacePath(workspace)
return os.MkdirAll(dir, 0755)
}