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, withsource, 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
destmatchsource, copying only changed files (by size and modification time) and deleting files that no longer exist, except the preserved build caches and fileskeepaccepts.