workspace

package
v0.19.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2025 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package workspace provides workspace management functionality for CM.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Workspace file errors.
	ErrFailedToCheckWorkspaceFiles = errors.New("failed to check for workspace files")
	ErrWorkspaceFileNotFound       = errors.New("workspace file not found")
	ErrInvalidWorkspaceFile        = errors.New("invalid workspace file")
	ErrNoRepositoriesFound         = errors.New("no repositories found in workspace")

	// Repository errors.
	ErrRepositoryNotFound = errors.New("repository not found in workspace")
	ErrRepositoryNotClean = errors.New("repository is not clean")

	// Worktree errors.
	ErrWorktreeExists      = errors.New("worktree already exists")
	ErrWorktreeNotInStatus = errors.New("worktree not found in status file")

	// Directory and file system errors.
	ErrDirectoryExists = errors.New("directory already exists")

	// User interaction errors.
	ErrDeletionCancelled = errors.New("deletion cancelled by user")
)

Error definitions for workspace package.

Functions

This section is empty.

Types

type Config

type Config struct {
	Name    string   `json:"name,omitempty"`
	Folders []Folder `json:"folders"`
}

Config represents the configuration of a workspace.

type Folder

type Folder struct {
	Name string `json:"name"`
	Path string `json:"path"`
}

Folder represents a folder in a workspace.

type NewWorkspaceParams

type NewWorkspaceParams struct {
	FS               fs.FS
	Git              git.Git
	Config           config.Config
	StatusManager    status.Manager
	Logger           logger.Logger
	Prompt           prompt.Prompter
	WorktreeProvider WorktreeProvider
	HookManager      hooks.HookManagerInterface
}

NewWorkspaceParams contains parameters for creating a new Workspace instance.

type Workspace

type Workspace interface {
	mode.Interface

	// Workspace-specific methods
	Load(force bool) error
	DetectWorkspaceFiles() ([]string, error)
	ParseFile(filename string) (Config, error)
	GetName(config Config, filename string) string
	HandleMultipleFiles(workspaceFiles []string, force bool) (string, error)
	ValidateWorkspaceReferences() error
}

Workspace interface provides workspace management capabilities. It implements the common Interface and adds workspace-specific methods.

func NewWorkspace

func NewWorkspace(params NewWorkspaceParams) Workspace

NewWorkspace creates a new Workspace instance.

type WorktreeProvider

type WorktreeProvider func(params worktree.NewWorktreeParams) worktree.Worktree

WorktreeProvider is a function type that creates worktree instances.

type WorktreeWithRepo

type WorktreeWithRepo struct {
	status.WorktreeInfo
	RepoURL  string
	RepoPath string
}

WorktreeWithRepo represents a worktree with its associated repository information.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL