Documentation
¶
Index ¶
- type App
- type DatabaseManager
- type DockerDatabase
- func (d *DockerDatabase) Clone(ctx context.Context, env Environment, source, target string) (returnErr error)
- func (d *DockerDatabase) Create(ctx context.Context, env Environment, name string) error
- func (d *DockerDatabase) Exists(ctx context.Context, env Environment, name string) (bool, error)
- func (d *DockerDatabase) Migrate(ctx context.Context, env Environment, name string) error
- func (d *DockerDatabase) RequireRunning(ctx context.Context, env Environment) error
- func (d *DockerDatabase) Reset(ctx context.Context, env Environment, name string) error
- func (d *DockerDatabase) Rollback(ctx context.Context, env Environment, name string) error
- func (d *DockerDatabase) Start(ctx context.Context, env Environment) error
- type Environment
- type FilePortAllocator
- type OSProcesses
- func (p *OSProcesses) E2E(ctx context.Context, env Environment, project string, webPort int) error
- func (p *OSProcesses) Mobile(ctx context.Context, env Environment, host, installationURL string) error
- func (p *OSProcesses) Start(ctx context.Context, env Environment, mode string, apiPort, webPort int) error
- type PortAllocator
- type PortLease
- type ProcessManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
Stdin io.Reader
Stdout io.Writer
Stderr io.Writer
Resolve func(context.Context) (Environment, error)
Database DatabaseManager
Ports PortAllocator
Processes ProcessManager
// LANAddress is this machine's address as a phone on the same network
// sees it.
LANAddress func(context.Context) (string, error)
}
App implements the command interface used by mise tasks.
type DatabaseManager ¶
type DatabaseManager interface {
Start(context.Context, Environment) error
RequireRunning(context.Context, Environment) error
Exists(context.Context, Environment, string) (bool, error)
Create(context.Context, Environment, string) error
Clone(context.Context, Environment, string, string) error
Reset(context.Context, Environment, string) error
Migrate(context.Context, Environment, string) error
Rollback(context.Context, Environment, string) error
}
DatabaseManager owns the shared PostgreSQL process and its worktree databases.
type DockerDatabase ¶
type DockerDatabase struct{}
DockerDatabase manages PostgreSQL through the main worktree's Compose service.
func (*DockerDatabase) Clone ¶
func (d *DockerDatabase) Clone(ctx context.Context, env Environment, source, target string) (returnErr error)
func (*DockerDatabase) Create ¶
func (d *DockerDatabase) Create(ctx context.Context, env Environment, name string) error
func (*DockerDatabase) Exists ¶
func (d *DockerDatabase) Exists(ctx context.Context, env Environment, name string) (bool, error)
func (*DockerDatabase) Migrate ¶
func (d *DockerDatabase) Migrate(ctx context.Context, env Environment, name string) error
func (*DockerDatabase) RequireRunning ¶
func (d *DockerDatabase) RequireRunning(ctx context.Context, env Environment) error
func (*DockerDatabase) Reset ¶
func (d *DockerDatabase) Reset(ctx context.Context, env Environment, name string) error
func (*DockerDatabase) Rollback ¶
func (d *DockerDatabase) Rollback(ctx context.Context, env Environment, name string) error
func (*DockerDatabase) Start ¶
func (d *DockerDatabase) Start(ctx context.Context, env Environment) error
type Environment ¶
type Environment struct {
MainRoot string
CurrentRoot string
MainDatabase string
CurrentDatabase string
PostgresPort int
ProjectName string
}
Environment describes the repository and worktree resources used by a command.
func ResolveEnvironment ¶
func ResolveEnvironment(ctx context.Context) (Environment, error)
func (Environment) DatabaseURL ¶
func (e Environment) DatabaseURL(name string) string
func (Environment) IsMain ¶
func (e Environment) IsMain() bool
type FilePortAllocator ¶
type FilePortAllocator struct {
LockRoot string
}
FilePortAllocator coordinates ports between worktrees with advisory locks.
type OSProcesses ¶
type OSProcesses struct{}
OSProcesses runs development commands as child process groups.
func (*OSProcesses) E2E ¶
func (p *OSProcesses) E2E(ctx context.Context, env Environment, project string, webPort int) error
func (*OSProcesses) Mobile ¶ added in v0.3.0
func (p *OSProcesses) Mobile(ctx context.Context, env Environment, host, installationURL string) error
func (*OSProcesses) Start ¶
func (p *OSProcesses) Start(ctx context.Context, env Environment, mode string, apiPort, webPort int) error
type PortAllocator ¶
PortAllocator reserves the first available port at or above a preferred port.
type ProcessManager ¶
type ProcessManager interface {
Start(context.Context, Environment, string, int, int) error
// Mobile starts Expo advertising host, with the app's address field
// prefilled with installationURL.
Mobile(ctx context.Context, env Environment, host, installationURL string) error
E2E(context.Context, Environment, string, int) error
}
ProcessManager runs the development servers, the Mobile App's bundler, and browser tests.
Click to show internal directories.
Click to hide internal directories.