shipworld library

Shared configuration and process primitives for shipworld.

Classes

ArtifactPayload
A prebuilt application payload that can be staged for a desktop package.
CommandResult
Result of a captured child process run.
DirectoryPayload
A payload containing a prebuilt directory such as a Flutter bundle.
ExecutablePayload
A payload containing one native executable.
GitClient
Injectable Git command boundary.
HomebrewTargetConfig
Homebrew artifact naming metadata for a target.
IoGitClient
Git client backed by the system git executable.
IoProcessExecutor
LinuxDebConfig
Debian-specific packaging metadata.
LinuxIconConfig
One icon installed into the hicolor theme by a deb or rpm.
LinuxRpmConfig
RPM-specific packaging metadata.
LinuxTargetConfig
Linux AppImage and distribution-package metadata for a target.
MacosTargetConfig
macOS package metadata for a target.
PayloadConfig
Target-level payload metadata.
ProcessExecutor
Injectable process boundary used by packaging and signing operations.
ProductConfig
Product metadata shared by desktop package generators.
ReleaseTargetConfig
One independently versioned package or application.
ShipworldConfig
Parsed schema-v1 root configuration.
ShipworldContext
Immutable external boundaries used by Shipworld operations.
ShipworldLogger
Receives progress messages from Shipworld services.
SilentShipworldLogger
Logger that intentionally discards all messages.
SynchronizedVersionConfig
A generated file that must carry the target version.
VersionConfig
Version source and synchronized writer configuration.
WindowsIdentityEnvironmentConfig
Names of environment variables containing the MSIX identity.
WindowsTargetConfig
Windows package metadata for a target.

Enums

PayloadKind
Configured prebuilt payload shape.
ShipworldTargetKind
Supported release target kinds.
VersionWriterKind
Supported synchronized version-file writers.

Properties

currentShipworldEnvironment Map<String, String>
Environment scoped to the current Shipworld operation.
no setter
currentShipworldLogger ShipworldLogger
Logger scoped to the current Shipworld operation.
no setter

Functions

loadShipworldConfig(String configPath) Future<ShipworldConfig>
Loads and validates a schema-v1 shipworld.yaml file.
runCapture(String executable, List<String> args, {String? workingDirectory, Map<String, String>? environment, ProcessExecutor? executor}) Future<CommandResult>
Runs executable with args and captures stdout/stderr.
runChecked(String executable, List<String> args, {String? workingDirectory, Map<String, String>? environment, ProcessExecutor? executor}) Future<CommandResult>
Runs executable with args, capturing output, and throws ShipworldException when the process exits with a non-zero code.
runInherited(String executable, List<String> args, {String? workingDirectory, Map<String, String>? environment, ProcessExecutor? executor}) Future<void>
Runs executable with args with stdio inherited from the parent process, throwing ShipworldException on a non-zero exit code.
runWithProcessExecutor<T>(ProcessExecutor executor, Future<T> body()) Future<T>

Exceptions / Errors

ShipworldException
An expected configuration, release, or packaging failure.