package fileops import ( "fmt" "os" "strings" ) // WorkspaceDirectoryMode is the POSIX mode for ordinary, shareable workspace // directories. The set-group-ID bit preserves the configured workspace group // for nested files and directories. const WorkspaceDirectoryMode os.FileMode = os.ModeSetgid | 0o775 // WorkspaceFileMode is the POSIX mode for ordinary, shareable workspace files. const WorkspaceFileMode os.FileMode = 0o664 // EnsureWorkspaceDirectory creates directory and makes every directory created // for it conform to the ordinary workspace sharing contract. Existing // directories retain their owner and group; only their mode is updated. func EnsureWorkspaceDirectory(directory string) error { if strings.TrimSpace(directory) == "" { return fmt.Errorf("workspace directory is required") } if err := ensureConfinedDirectory(directory, WorkspaceDirectoryMode); err != nil { return fmt.Errorf("set workspace directory permissions %q: %w", directory, err) } return nil }