Documentation ¶
Overview ¶
Package workspace contains functionality to manage a user's local workspace. This includes creating an application directory, reading and writing a summary file to associate the workspace with the application, and managing infrastructure-as-code files. The typical workspace will be structured like:
. ├── copilot (application directory) │ ├── .workspace (workspace summary) │ └── my-service │ │ └── manifest.yml (service manifest) │ ├── buildspec.yml (buildspec for the pipeline's build stage) │ └── pipeline.yml (pipeline manifest) └── my-service-src (customer service code)
Index ¶
- Constants
- Variables
- func IsInGitRepository(fs FileStat) bool
- func RelPath(fullPath string) (string, error)
- type ErrFileExists
- type FileStat
- type Summary
- type Workspace
- func (ws *Workspace) CopilotDirPath() (string, error)
- func (ws *Workspace) Create(appName string) error
- func (ws *Workspace) DeleteWorkspaceFile() error
- func (ws *Workspace) JobNames() ([]string, error)
- func (ws *Workspace) ListDockerfiles() ([]string, error)
- func (ws *Workspace) ReadAddon(svc, fname string) ([]byte, error)
- func (ws *Workspace) ReadAddonsDir(svcName string) ([]string, error)
- func (ws *Workspace) ReadJobManifest(name string) ([]byte, error)
- func (ws *Workspace) ReadPipelineManifest() ([]byte, error)
- func (ws *Workspace) ReadServiceManifest(name string) ([]byte, error)
- func (ws *Workspace) ServiceNames() ([]string, error)
- func (ws *Workspace) Summary() (*Summary, error)
- func (ws *Workspace) WorkloadNames() ([]string, error)
- func (ws *Workspace) WriteAddon(content encoding.BinaryMarshaler, svc, name string) (string, error)
- func (ws *Workspace) WriteJobManifest(marshaler encoding.BinaryMarshaler, name string) (string, error)
- func (ws *Workspace) WritePipelineBuildspec(marshaler encoding.BinaryMarshaler) (string, error)
- func (ws *Workspace) WritePipelineManifest(marshaler encoding.BinaryMarshaler) (string, error)
- func (ws *Workspace) WriteServiceManifest(marshaler encoding.BinaryMarshaler, name string) (string, error)
Constants ¶
const ( // CopilotDirName is the name of the directory where generated infrastructure code for an application will be stored. CopilotDirName = "copilot" // SummaryFileName is the name of the file that is associated with the application. SummaryFileName = ".workspace" )
Variables ¶
var ErrNoPipelineInWorkspace = errors.New("no pipeline manifest found in the workspace")
ErrNoPipelineInWorkspace means there was no pipeline manifest in the workspace dir.
Functions ¶
func IsInGitRepository ¶ added in v0.3.0
IsInGitRepository returns true if the current working directory is a git repository.
Types ¶
type ErrFileExists ¶
type ErrFileExists struct {
FileName string
}
ErrFileExists means we tried to create an existing file.
func (*ErrFileExists) Error ¶
func (e *ErrFileExists) Error() string
type Summary ¶
type Summary struct {
Application string `yaml:"application"` // Name of the application.
}
Summary is a description of what's associated with this workspace.
type Workspace ¶
type Workspace struct {
// contains filtered or unexported fields
}
Workspace typically represents a Git repository where the user has its infrastructure-as-code files as well as source files.
func (*Workspace) CopilotDirPath ¶ added in v0.3.0
CopilotDirPath returns the absolute path to the workspace's copilot dir.
func (*Workspace) Create ¶
Create creates the copilot directory (if it doesn't already exist) in the current working directory, and saves a summary with the application name.
func (*Workspace) DeleteWorkspaceFile ¶
DeleteWorkspaceFile removes the .workspace file under copilot/ directory. This will be called during app delete, we do not want to delete any other generated files.
func (*Workspace) JobNames ¶ added in v0.4.0
JobNames returns the names of all jobs in the workspace.
func (*Workspace) ListDockerfiles ¶ added in v0.5.0
ListDockerfiles returns the list of Dockerfiles within the current working directory and a sub-directory level below. If an error occurs while reading directories, or no Dockerfiles found returns the error.
func (*Workspace) ReadAddon ¶
ReadAddon returns the contents of a file under the service's "addons/" directory.
func (*Workspace) ReadAddonsDir ¶
ReadAddonsDir returns a list of file names under a service's "addons/" directory.
func (*Workspace) ReadJobManifest ¶ added in v0.5.0
ReadJobManifest returns the contents of the job's manifest under copilot/{name}/manifest.yml.
func (*Workspace) ReadPipelineManifest ¶
ReadPipelineManifest returns the contents of the pipeline manifest under copilot/pipeline.yml.
func (*Workspace) ReadServiceManifest ¶
ReadServiceManifest returns the contents of the service's manifest under copilot/{name}/manifest.yml.
func (*Workspace) ServiceNames ¶
ServiceNames returns the names of the services in the workspace.
func (*Workspace) Summary ¶
Summary returns a summary of the workspace - including the application name.
func (*Workspace) WorkloadNames ¶ added in v0.5.0
WorkloadNames returns the name of all the workloads in the workspace.
func (*Workspace) WriteAddon ¶
WriteAddon writes the content of an addon file under "{svc}/addons/{name}.yml". If successful returns the full path of the file, otherwise an empty string and an error.
func (*Workspace) WriteJobManifest ¶ added in v0.5.0
func (ws *Workspace) WriteJobManifest(marshaler encoding.BinaryMarshaler, name string) (string, error)
WriteJobManifest writes the job's manifest under the copilot/{name}/ directory.
func (*Workspace) WritePipelineBuildspec ¶
func (ws *Workspace) WritePipelineBuildspec(marshaler encoding.BinaryMarshaler) (string, error)
WritePipelineBuildspec writes the pipeline buildspec under the copilot/ directory. If successful returns the full path of the file, otherwise returns an empty string and the error.
func (*Workspace) WritePipelineManifest ¶
func (ws *Workspace) WritePipelineManifest(marshaler encoding.BinaryMarshaler) (string, error)
WritePipelineManifest writes the pipeline manifest under the copilot directory. If successful returns the full path of the file, otherwise returns an empty string and the error.
func (*Workspace) WriteServiceManifest ¶
func (ws *Workspace) WriteServiceManifest(marshaler encoding.BinaryMarshaler, name string) (string, error)
WriteServiceManifest writes the service's manifest under the copilot/{name}/ directory.