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) → Future<Workspace>
Locks a free workspace for platform (creating one if needed) and syncs the project into it.
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

sync(Directory source, Directory dest) → 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.