workspace

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

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

View Source
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

View Source
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

func IsInGitRepository(fs FileStat) bool

IsInGitRepository returns true if the current working directory is a git repository.

func RelPath added in v0.5.0

func RelPath(fullPath string) (string, error)

RelPath returns the path relative to the current working directory.

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 ErrFileNotExists added in v1.13.0

type ErrFileNotExists struct {
	FileName string
}

ErrFileNotExists means we tried to read a non-existing file.

func (*ErrFileNotExists) Error added in v1.13.0

func (e *ErrFileNotExists) Error() string

type ErrWorkspaceNotFound added in v1.13.0

type ErrWorkspaceNotFound struct {
	CurrentDirectory      string
	ManifestDirectoryName string
	NumberOfLevelsChecked int
}

ErrWorkspaceNotFound means we couldn't locate a workspace root.

func (*ErrWorkspaceNotFound) Error added in v1.13.0

func (e *ErrWorkspaceNotFound) Error() string

type FileStat added in v0.3.0

type FileStat interface {
	Stat(name string) (os.FileInfo, error)
}

FileStat wraps the os.Stat function.

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 WorkloadManifest added in v1.13.0

type WorkloadManifest []byte

WorkloadManifest represents raw local workload manifest.

func (WorkloadManifest) WorkloadType added in v1.13.0

func (w WorkloadManifest) WorkloadType() (string, error)

WorkloadType returns the workload type of the manifest.

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 New

func New() (*Workspace, error)

New returns a workspace, used for reading and writing to user's local workspace.

func (*Workspace) Create

func (ws *Workspace) Create(appName string) error

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

func (ws *Workspace) DeleteWorkspaceFile() error

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) ListDockerfiles added in v0.5.0

func (ws *Workspace) ListDockerfiles() ([]string, error)

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) ListJobs added in v1.13.0

func (ws *Workspace) ListJobs() ([]string, error)

ListJobs returns the names of all jobs in the workspace.

func (*Workspace) ListServices added in v1.13.0

func (ws *Workspace) ListServices() ([]string, error)

ListServices returns the names of the services in the workspace.

func (*Workspace) ListWorkloads added in v1.13.0

func (ws *Workspace) ListWorkloads() ([]string, error)

ListWorkloads returns the name of all the workloads in the workspace.

func (*Workspace) Path added in v1.14.0

func (ws *Workspace) Path() (string, error)

Path returns the absolute path to the workspace.

func (*Workspace) ReadAddon

func (ws *Workspace) ReadAddon(svc, fname string) ([]byte, error)

ReadAddon returns the contents of a file under the service's "addons/" directory.

func (*Workspace) ReadAddonsDir

func (ws *Workspace) ReadAddonsDir(svcName string) ([]string, error)

ReadAddonsDir returns a list of file names under a service's "addons/" directory.

func (*Workspace) ReadPipelineManifest

func (ws *Workspace) ReadPipelineManifest() ([]byte, error)

ReadPipelineManifest returns the contents of the pipeline manifest under copilot/pipeline.yml.

func (*Workspace) ReadWorkloadManifest added in v0.4.0

func (ws *Workspace) ReadWorkloadManifest(mftDirName string) (WorkloadManifest, error)

ReadWorkloadManifest returns the contents of the workload's manifest under copilot/{name}/manifest.yml.

func (*Workspace) Summary

func (ws *Workspace) Summary() (*Summary, error)

Summary returns a summary of the workspace - including the application name.

func (*Workspace) WriteAddon

func (ws *Workspace) WriteAddon(content encoding.BinaryMarshaler, svc, name string) (string, error)

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.

Jump to

Keyboard shortcuts

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