WorkspaceManager class

Manages the per-project pool of build workspaces under ~/.udara_cli/workspaces/. They live outside the project so IDEs don't index them, and they persist between runs so build/, Gradle and CocoaPods caches stay warm. Each is synced from the project before use, so uncommitted changes are built too.

Constructors

WorkspaceManager(String projectDir)

Properties

hashCode → int
The hash code for this object.
no setterinherited
projectDir → String
final
root → Directory
~/.udara_cli/workspaces/<project>-<hash of its path>.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

acquire(String platform, {RefSource? source}) → Future<Workspace>
Locks a free workspace for platform (creating one if needed) and syncs the project into it, or, with source, that ref's files. Each ref has workspaces of its own, so switching between building it and the working copy doesn't throw away either's build caches.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeAll() → Future<bool>
Deletes every workspace for this project.
rewriteExternalPathDependencies(String workspaceDir) → void
Relative path: dependencies that point outside the project (e.g. a shared package next to it) would break in the copy; make them absolute.
toString() → String
A string representation of this object.
inherited
unsupportedReason() → String?
Parallel builds can't run in a pub workspace member: the copy would lose the parent workspace. Returns the reason, or null when supported.

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

isPreserved(String rel) → bool
Build outputs and caches each workspace keeps for itself, by path relative to the project (ios/Pods).
sync(Directory source, Directory dest, {bool keep(String rel)?}) → Future<void>
Makes dest match source, copying only changed files (by size and modification time) and deleting files that no longer exist, except the preserved build caches and files keep accepts.