lim 0.14.4 → 0.14.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base-command.d.ts +3 -0
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +18 -4
- package/dist/base-command.js.map +1 -1
- package/dist/commands/android/connect.d.ts +1 -0
- package/dist/commands/android/connect.d.ts.map +1 -1
- package/dist/commands/android/create.d.ts +1 -0
- package/dist/commands/android/create.d.ts.map +1 -1
- package/dist/commands/android/delete.d.ts +1 -0
- package/dist/commands/android/delete.d.ts.map +1 -1
- package/dist/commands/android/element-tree.d.ts +1 -0
- package/dist/commands/android/element-tree.d.ts.map +1 -1
- package/dist/commands/android/find-element.d.ts +1 -0
- package/dist/commands/android/find-element.d.ts.map +1 -1
- package/dist/commands/android/get.d.ts +1 -0
- package/dist/commands/android/get.d.ts.map +1 -1
- package/dist/commands/android/install-app.d.ts +1 -0
- package/dist/commands/android/install-app.d.ts.map +1 -1
- package/dist/commands/android/list.d.ts +1 -0
- package/dist/commands/android/list.d.ts.map +1 -1
- package/dist/commands/android/open-url.d.ts +1 -0
- package/dist/commands/android/open-url.d.ts.map +1 -1
- package/dist/commands/android/press-key.d.ts +1 -0
- package/dist/commands/android/press-key.d.ts.map +1 -1
- package/dist/commands/android/record.d.ts +1 -0
- package/dist/commands/android/record.d.ts.map +1 -1
- package/dist/commands/android/screenshot.d.ts +1 -0
- package/dist/commands/android/screenshot.d.ts.map +1 -1
- package/dist/commands/android/scroll.d.ts +1 -0
- package/dist/commands/android/scroll.d.ts.map +1 -1
- package/dist/commands/android/set-wifi-bandwidth.d.ts +1 -0
- package/dist/commands/android/set-wifi-bandwidth.d.ts.map +1 -1
- package/dist/commands/android/tap-element.d.ts +1 -0
- package/dist/commands/android/tap-element.d.ts.map +1 -1
- package/dist/commands/android/tap.d.ts +1 -0
- package/dist/commands/android/tap.d.ts.map +1 -1
- package/dist/commands/android/type.d.ts +1 -0
- package/dist/commands/android/type.d.ts.map +1 -1
- package/dist/commands/asset/delete.d.ts +1 -0
- package/dist/commands/asset/delete.d.ts.map +1 -1
- package/dist/commands/asset/list.d.ts +1 -0
- package/dist/commands/asset/list.d.ts.map +1 -1
- package/dist/commands/asset/pull.d.ts +1 -0
- package/dist/commands/asset/pull.d.ts.map +1 -1
- package/dist/commands/asset/push.d.ts +1 -0
- package/dist/commands/asset/push.d.ts.map +1 -1
- package/dist/commands/ios/app-log.d.ts +1 -0
- package/dist/commands/ios/app-log.d.ts.map +1 -1
- package/dist/commands/ios/cp.d.ts +1 -0
- package/dist/commands/ios/cp.d.ts.map +1 -1
- package/dist/commands/ios/create.d.ts +1 -0
- package/dist/commands/ios/create.d.ts.map +1 -1
- package/dist/commands/ios/delete.d.ts +1 -0
- package/dist/commands/ios/delete.d.ts.map +1 -1
- package/dist/commands/ios/element-tree.d.ts +1 -0
- package/dist/commands/ios/element-tree.d.ts.map +1 -1
- package/dist/commands/ios/get.d.ts +1 -0
- package/dist/commands/ios/get.d.ts.map +1 -1
- package/dist/commands/ios/info.d.ts +1 -0
- package/dist/commands/ios/info.d.ts.map +1 -1
- package/dist/commands/ios/install-app.d.ts +1 -0
- package/dist/commands/ios/install-app.d.ts.map +1 -1
- package/dist/commands/ios/launch-app.d.ts +1 -0
- package/dist/commands/ios/launch-app.d.ts.map +1 -1
- package/dist/commands/ios/list-apps.d.ts +1 -0
- package/dist/commands/ios/list-apps.d.ts.map +1 -1
- package/dist/commands/ios/list.d.ts +1 -0
- package/dist/commands/ios/list.d.ts.map +1 -1
- package/dist/commands/ios/lsof.d.ts +1 -0
- package/dist/commands/ios/lsof.d.ts.map +1 -1
- package/dist/commands/ios/open-url.d.ts +1 -0
- package/dist/commands/ios/open-url.d.ts.map +1 -1
- package/dist/commands/ios/perform.d.ts +1 -0
- package/dist/commands/ios/perform.d.ts.map +1 -1
- package/dist/commands/ios/press-key.d.ts +1 -0
- package/dist/commands/ios/press-key.d.ts.map +1 -1
- package/dist/commands/ios/record.d.ts +1 -0
- package/dist/commands/ios/record.d.ts.map +1 -1
- package/dist/commands/ios/reverse.d.ts +1 -0
- package/dist/commands/ios/reverse.d.ts.map +1 -1
- package/dist/commands/ios/screenshot.d.ts +1 -0
- package/dist/commands/ios/screenshot.d.ts.map +1 -1
- package/dist/commands/ios/scroll.d.ts +1 -0
- package/dist/commands/ios/scroll.d.ts.map +1 -1
- package/dist/commands/ios/simctl.d.ts +1 -0
- package/dist/commands/ios/simctl.d.ts.map +1 -1
- package/dist/commands/ios/sync.d.ts +1 -0
- package/dist/commands/ios/sync.d.ts.map +1 -1
- package/dist/commands/ios/syslog.d.ts +1 -0
- package/dist/commands/ios/syslog.d.ts.map +1 -1
- package/dist/commands/ios/tap-element.d.ts +1 -0
- package/dist/commands/ios/tap-element.d.ts.map +1 -1
- package/dist/commands/ios/tap.d.ts +1 -0
- package/dist/commands/ios/tap.d.ts.map +1 -1
- package/dist/commands/ios/terminate-app.d.ts +1 -0
- package/dist/commands/ios/terminate-app.d.ts.map +1 -1
- package/dist/commands/ios/toggle-keyboard.d.ts +1 -0
- package/dist/commands/ios/toggle-keyboard.d.ts.map +1 -1
- package/dist/commands/ios/type.d.ts +1 -0
- package/dist/commands/ios/type.d.ts.map +1 -1
- package/dist/commands/ios/xcodebuild.d.ts +1 -0
- package/dist/commands/ios/xcodebuild.d.ts.map +1 -1
- package/dist/commands/ios/xcrun.d.ts +1 -0
- package/dist/commands/ios/xcrun.d.ts.map +1 -1
- package/dist/commands/login.d.ts +1 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/logout.d.ts +1 -0
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/session/start.d.ts +1 -0
- package/dist/commands/session/start.d.ts.map +1 -1
- package/dist/commands/session/status.d.ts +1 -0
- package/dist/commands/session/status.d.ts.map +1 -1
- package/dist/commands/session/stop.d.ts +1 -0
- package/dist/commands/session/stop.d.ts.map +1 -1
- package/dist/commands/set-workspace-dir.d.ts +15 -0
- package/dist/commands/set-workspace-dir.d.ts.map +1 -0
- package/dist/commands/set-workspace-dir.js +60 -0
- package/dist/commands/set-workspace-dir.js.map +1 -0
- package/dist/commands/xcode/attach-simulator.d.ts +1 -0
- package/dist/commands/xcode/attach-simulator.d.ts.map +1 -1
- package/dist/commands/xcode/create.d.ts +1 -0
- package/dist/commands/xcode/create.d.ts.map +1 -1
- package/dist/commands/xcode/delete.d.ts +1 -0
- package/dist/commands/xcode/delete.d.ts.map +1 -1
- package/dist/commands/xcode/get.d.ts +1 -0
- package/dist/commands/xcode/get.d.ts.map +1 -1
- package/dist/commands/xcode/list.d.ts +1 -0
- package/dist/commands/xcode/list.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/install.d.ts +2 -0
- package/dist/commands/xcode/rbe/install.d.ts.map +1 -1
- package/dist/commands/xcode/rbe/install.js +14 -4
- package/dist/commands/xcode/rbe/install.js.map +1 -1
- package/dist/commands/xcode/rbe.d.ts +5 -0
- package/dist/commands/xcode/rbe.d.ts.map +1 -1
- package/dist/commands/xcode/rbe.js +122 -13
- package/dist/commands/xcode/rbe.js.map +1 -1
- package/dist/commands/xcode/sync.d.ts +1 -0
- package/dist/commands/xcode/sync.d.ts.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +324 -105
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/rbe-bep-watcher.d.ts +41 -0
- package/dist/lib/rbe-bep-watcher.d.ts.map +1 -0
- package/dist/lib/rbe-bep-watcher.js +267 -0
- package/dist/lib/rbe-bep-watcher.js.map +1 -0
- package/dist/lib/rbe-session.d.ts +13 -0
- package/dist/lib/rbe-session.d.ts.map +1 -1
- package/dist/lib/rbe-session.js +15 -0
- package/dist/lib/rbe-session.js.map +1 -1
- package/dist/lib/rbe-workspace.d.ts +14 -1
- package/dist/lib/rbe-workspace.d.ts.map +1 -1
- package/dist/lib/rbe-workspace.js +25 -5
- package/dist/lib/rbe-workspace.js.map +1 -1
- package/dist/lib/scope.d.ts +38 -0
- package/dist/lib/scope.d.ts.map +1 -0
- package/dist/lib/scope.js +125 -0
- package/dist/lib/scope.js.map +1 -0
- package/dist/lib/workspace.d.ts +25 -0
- package/dist/lib/workspace.d.ts.map +1 -0
- package/dist/lib/workspace.js +111 -0
- package/dist/lib/workspace.js.map +1 -0
- package/package.json +4 -3
package/dist/lib/config.js
CHANGED
|
@@ -22,6 +22,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
22
22
|
const os_1 = __importDefault(require("os"));
|
|
23
23
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
24
24
|
const xcode_sandbox_1 = require("./xcode-sandbox");
|
|
25
|
+
const scope_1 = require("./scope");
|
|
25
26
|
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.lim');
|
|
26
27
|
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.yaml');
|
|
27
28
|
exports.CONFIG_KEYS = {
|
|
@@ -76,25 +77,256 @@ function clearApiKey() {
|
|
|
76
77
|
}
|
|
77
78
|
// ---------- Last used instance per type ----------
|
|
78
79
|
const LAST_INSTANCE_FILE = path_1.default.join(CONFIG_DIR, 'last-instances.json');
|
|
79
|
-
|
|
80
|
+
const LAST_INSTANCE_LOCK = `${LAST_INSTANCE_FILE}.lock`;
|
|
81
|
+
const SCHEMA_VERSION = 2;
|
|
82
|
+
/** Reserved scope key holding pre-scoping (legacy flat-file) data until the next write migrates it. */
|
|
83
|
+
const LEGACY_SCOPE_KEY = '__lim_legacy__';
|
|
84
|
+
/** Pre-rename key for the shared non-repo slot; remapped to GLOBAL_SCOPE_KEY on read. */
|
|
85
|
+
const LEGACY_GLOBAL_SCOPE_KEY = '__global__';
|
|
86
|
+
/** Cap on how many directory scopes we retain; least-recently-used are pruned beyond this. */
|
|
87
|
+
const MAX_SCOPES = 200;
|
|
88
|
+
/** Drop scopes untouched for this long so abandoned worktrees don't accumulate. */
|
|
89
|
+
const SCOPE_TTL_MS = 60 * 24 * 60 * 60 * 1000;
|
|
90
|
+
function readParsedLastInstances() {
|
|
80
91
|
if (!fs_1.default.existsSync(LAST_INSTANCE_FILE))
|
|
81
|
-
return
|
|
92
|
+
return null;
|
|
93
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
94
|
+
try {
|
|
95
|
+
return JSON.parse(fs_1.default.readFileSync(LAST_INSTANCE_FILE, 'utf-8'));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// A concurrent atomic rename can momentarily race a read; retry once.
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
function sanitizeScope(value) {
|
|
104
|
+
const scope = {};
|
|
105
|
+
if (!isRecord(value))
|
|
106
|
+
return scope;
|
|
107
|
+
if (typeof value['lastUsedAt'] === 'string')
|
|
108
|
+
scope.lastUsedAt = value['lastUsedAt'];
|
|
109
|
+
if (isLastAndroidInstance(value['android']))
|
|
110
|
+
scope.android = value['android'];
|
|
111
|
+
if (isLastIosInstance(value['ios']))
|
|
112
|
+
scope.ios = value['ios'];
|
|
113
|
+
if (isLastIosInstance(value['xcode']) || isLastXcodeInstance(value['xcode'])) {
|
|
114
|
+
scope.xcode = value['xcode'];
|
|
115
|
+
}
|
|
116
|
+
return scope;
|
|
117
|
+
}
|
|
118
|
+
function scopeHasInstance(scope) {
|
|
119
|
+
return Boolean(scope.ios || scope.android || scope.xcode);
|
|
120
|
+
}
|
|
121
|
+
/** Copy any slots missing from `primary` out of `fallback`. */
|
|
122
|
+
function fillMissingScope(primary, fallback) {
|
|
123
|
+
const out = { ...primary };
|
|
124
|
+
if (!out.ios && fallback.ios)
|
|
125
|
+
out.ios = fallback.ios;
|
|
126
|
+
if (!out.android && fallback.android)
|
|
127
|
+
out.android = fallback.android;
|
|
128
|
+
if (!out.xcode && fallback.xcode)
|
|
129
|
+
out.xcode = fallback.xcode;
|
|
130
|
+
if (!out.lastUsedAt && fallback.lastUsedAt)
|
|
131
|
+
out.lastUsedAt = fallback.lastUsedAt;
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parse the on-disk file into the current scoped schema. Two migrations happen
|
|
136
|
+
* here so upgrades keep resolving instances without recreating them:
|
|
137
|
+
* - a legacy flat file (`{ios,android,xcode}` with no `scopes`) is surfaced
|
|
138
|
+
* under LEGACY_SCOPE_KEY (folded into the active scope on the next write), and
|
|
139
|
+
* - the pre-rename global slot key (`__global__`) is remapped onto the current
|
|
140
|
+
* GLOBAL_SCOPE_KEY (the current key wins for any overlapping slots).
|
|
141
|
+
* Both are persisted on the next write.
|
|
142
|
+
*/
|
|
143
|
+
function readNormalizedFile() {
|
|
144
|
+
const parsed = readParsedLastInstances();
|
|
145
|
+
const file = { version: SCHEMA_VERSION, scopes: {} };
|
|
146
|
+
if (!isRecord(parsed))
|
|
147
|
+
return file;
|
|
148
|
+
if (typeof parsed['version'] === 'number' && isRecord(parsed['scopes'])) {
|
|
149
|
+
let legacyGlobal;
|
|
150
|
+
for (const [key, value] of Object.entries(parsed['scopes'])) {
|
|
151
|
+
if (key === LEGACY_GLOBAL_SCOPE_KEY) {
|
|
152
|
+
legacyGlobal = sanitizeScope(value);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
file.scopes[key] = sanitizeScope(value);
|
|
156
|
+
}
|
|
157
|
+
if (legacyGlobal && scopeHasInstance(legacyGlobal)) {
|
|
158
|
+
const current = file.scopes[scope_1.GLOBAL_SCOPE_KEY];
|
|
159
|
+
file.scopes[scope_1.GLOBAL_SCOPE_KEY] = current ? fillMissingScope(current, legacyGlobal) : legacyGlobal;
|
|
160
|
+
}
|
|
161
|
+
return file;
|
|
162
|
+
}
|
|
163
|
+
const legacy = sanitizeScope(parsed);
|
|
164
|
+
if (scopeHasInstance(legacy)) {
|
|
165
|
+
file.scopes[LEGACY_SCOPE_KEY] = legacy;
|
|
166
|
+
}
|
|
167
|
+
return file;
|
|
168
|
+
}
|
|
169
|
+
function getScopeData(file, scopeKey) {
|
|
170
|
+
return file.scopes[scopeKey] ?? file.scopes[LEGACY_SCOPE_KEY] ?? {};
|
|
171
|
+
}
|
|
172
|
+
function readScope(scopeKey) {
|
|
173
|
+
return getScopeData(readNormalizedFile(), scopeKey);
|
|
174
|
+
}
|
|
175
|
+
function ensureScope(file, scopeKey) {
|
|
176
|
+
let scope = file.scopes[scopeKey];
|
|
177
|
+
if (!scope) {
|
|
178
|
+
scope = {};
|
|
179
|
+
file.scopes[scopeKey] = scope;
|
|
180
|
+
}
|
|
181
|
+
return scope;
|
|
182
|
+
}
|
|
183
|
+
/** Fold legacy flat-file data into the active scope (only slots not already set), once. */
|
|
184
|
+
function foldLegacyInto(file, scopeKey) {
|
|
185
|
+
const legacy = file.scopes[LEGACY_SCOPE_KEY];
|
|
186
|
+
if (!legacy)
|
|
187
|
+
return false;
|
|
188
|
+
delete file.scopes[LEGACY_SCOPE_KEY];
|
|
189
|
+
const scope = ensureScope(file, scopeKey);
|
|
190
|
+
if (!scope.android && legacy.android)
|
|
191
|
+
scope.android = legacy.android;
|
|
192
|
+
if (!scope.ios && legacy.ios)
|
|
193
|
+
scope.ios = legacy.ios;
|
|
194
|
+
if (!scope.xcode && legacy.xcode)
|
|
195
|
+
scope.xcode = legacy.xcode;
|
|
196
|
+
if (!scope.lastUsedAt)
|
|
197
|
+
scope.lastUsedAt = legacy.lastUsedAt ?? new Date().toISOString();
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
function scopeTimestamp(scope) {
|
|
201
|
+
const ts = scope.lastUsedAt ? Date.parse(scope.lastUsedAt) : NaN;
|
|
202
|
+
return Number.isNaN(ts) ? 0 : ts;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Drop empty scopes, TTL-expired scopes, and the least-recently-used beyond the
|
|
206
|
+
* cap. The global (non-repo) slot is exempt from TTL/LRU pruning so the "use my
|
|
207
|
+
* most recent instance" fallback persists like the old single-slot behavior; it
|
|
208
|
+
* is still removed once empty.
|
|
209
|
+
*/
|
|
210
|
+
function pruneScopes(file) {
|
|
211
|
+
let changed = false;
|
|
212
|
+
const now = Date.now();
|
|
213
|
+
for (const key of Object.keys(file.scopes)) {
|
|
214
|
+
if (key === LEGACY_SCOPE_KEY)
|
|
215
|
+
continue;
|
|
216
|
+
const scope = file.scopes[key];
|
|
217
|
+
if (!scopeHasInstance(scope)) {
|
|
218
|
+
delete file.scopes[key];
|
|
219
|
+
changed = true;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (key === scope_1.GLOBAL_SCOPE_KEY)
|
|
223
|
+
continue;
|
|
224
|
+
if (scope.lastUsedAt && now - scopeTimestamp(scope) > SCOPE_TTL_MS) {
|
|
225
|
+
delete file.scopes[key];
|
|
226
|
+
changed = true;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const keys = Object.keys(file.scopes).filter((k) => k !== LEGACY_SCOPE_KEY && k !== scope_1.GLOBAL_SCOPE_KEY);
|
|
230
|
+
if (keys.length > MAX_SCOPES) {
|
|
231
|
+
keys
|
|
232
|
+
.sort((a, b) => scopeTimestamp(file.scopes[a]) - scopeTimestamp(file.scopes[b]))
|
|
233
|
+
.slice(0, keys.length - MAX_SCOPES)
|
|
234
|
+
.forEach((key) => {
|
|
235
|
+
delete file.scopes[key];
|
|
236
|
+
changed = true;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
return changed;
|
|
240
|
+
}
|
|
241
|
+
function atomicWriteFile(file) {
|
|
242
|
+
ensureConfigDir();
|
|
243
|
+
const tmp = `${LAST_INSTANCE_FILE}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
244
|
+
fs_1.default.writeFileSync(tmp, JSON.stringify(file, null, 2), { mode: 0o600 });
|
|
245
|
+
fs_1.default.renameSync(tmp, LAST_INSTANCE_FILE);
|
|
246
|
+
}
|
|
247
|
+
function sleepSync(ms) {
|
|
82
248
|
try {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
249
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
const end = Date.now() + ms;
|
|
253
|
+
while (Date.now() < end) {
|
|
254
|
+
/* SharedArrayBuffer unavailable; brief busy wait */
|
|
86
255
|
}
|
|
87
256
|
}
|
|
88
|
-
catch { }
|
|
89
|
-
deleteLastInstancesFile();
|
|
90
|
-
return {};
|
|
91
257
|
}
|
|
92
|
-
|
|
258
|
+
const LOCK_TIMEOUT_MS = 3000;
|
|
259
|
+
const LOCK_STALE_MS = 15000;
|
|
260
|
+
function acquireLock() {
|
|
261
|
+
const start = Date.now();
|
|
262
|
+
for (;;) {
|
|
263
|
+
try {
|
|
264
|
+
const fd = fs_1.default.openSync(LAST_INSTANCE_LOCK, 'wx');
|
|
265
|
+
try {
|
|
266
|
+
fs_1.default.writeSync(fd, String(process.pid));
|
|
267
|
+
}
|
|
268
|
+
catch { }
|
|
269
|
+
return fd;
|
|
270
|
+
}
|
|
271
|
+
catch (err) {
|
|
272
|
+
if (err.code !== 'EEXIST') {
|
|
273
|
+
return null; // can't create lock (e.g. permissions); proceed best-effort
|
|
274
|
+
}
|
|
275
|
+
try {
|
|
276
|
+
const stat = fs_1.default.statSync(LAST_INSTANCE_LOCK);
|
|
277
|
+
if (Date.now() - stat.mtimeMs > LOCK_STALE_MS) {
|
|
278
|
+
try {
|
|
279
|
+
fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
|
|
280
|
+
}
|
|
281
|
+
catch { }
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
continue; // lock vanished between open and stat; retry immediately
|
|
287
|
+
}
|
|
288
|
+
if (Date.now() - start > LOCK_TIMEOUT_MS)
|
|
289
|
+
return null;
|
|
290
|
+
sleepSync(20 + Math.floor(Math.random() * 30));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
function releaseLock(fd) {
|
|
295
|
+
if (fd === null)
|
|
296
|
+
return;
|
|
297
|
+
try {
|
|
298
|
+
fs_1.default.closeSync(fd);
|
|
299
|
+
}
|
|
300
|
+
catch { }
|
|
93
301
|
try {
|
|
94
|
-
fs_1.default.unlinkSync(
|
|
302
|
+
fs_1.default.unlinkSync(LAST_INSTANCE_LOCK);
|
|
95
303
|
}
|
|
96
304
|
catch { }
|
|
97
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Serialized, atomic read-modify-write of the last-instances file. The mutator
|
|
308
|
+
* receives the parsed file plus the active scope key; returning `false` signals
|
|
309
|
+
* no change so we can skip the write (and avoid needless lock churn for parallel
|
|
310
|
+
* agents). Legacy data is migrated into the active scope before the mutator runs.
|
|
311
|
+
*/
|
|
312
|
+
function mutate(fn) {
|
|
313
|
+
ensureConfigDir();
|
|
314
|
+
const fd = acquireLock();
|
|
315
|
+
try {
|
|
316
|
+
const file = readNormalizedFile();
|
|
317
|
+
const scopeKey = (0, scope_1.getScopeKey)();
|
|
318
|
+
let changed = foldLegacyInto(file, scopeKey);
|
|
319
|
+
if (fn(file, scopeKey) !== false)
|
|
320
|
+
changed = true;
|
|
321
|
+
if (pruneScopes(file))
|
|
322
|
+
changed = true;
|
|
323
|
+
if (changed)
|
|
324
|
+
atomicWriteFile(file);
|
|
325
|
+
}
|
|
326
|
+
finally {
|
|
327
|
+
releaseLock(fd);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
98
330
|
function isRecord(value) {
|
|
99
331
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
100
332
|
}
|
|
@@ -107,23 +339,6 @@ function isLastIosInstance(value) {
|
|
|
107
339
|
function isLastXcodeInstance(value) {
|
|
108
340
|
return isRecord(value) && value['type'] === 'xcode' && typeof value['id'] === 'string';
|
|
109
341
|
}
|
|
110
|
-
function isLastInstances(value) {
|
|
111
|
-
if (!isRecord(value))
|
|
112
|
-
return false;
|
|
113
|
-
const keys = Object.keys(value);
|
|
114
|
-
if (keys.some((key) => !['ios', 'android', 'xcode'].includes(key)))
|
|
115
|
-
return false;
|
|
116
|
-
if (value['android'] !== undefined && !isLastAndroidInstance(value['android']))
|
|
117
|
-
return false;
|
|
118
|
-
if (value['ios'] !== undefined && !isLastIosInstance(value['ios']))
|
|
119
|
-
return false;
|
|
120
|
-
if (value['xcode'] !== undefined &&
|
|
121
|
-
!isLastIosInstance(value['xcode']) &&
|
|
122
|
-
!isLastXcodeInstance(value['xcode'])) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
342
|
function detectLastInstanceType(instanceId) {
|
|
128
343
|
const rawPrefix = instanceId.split('_')[0];
|
|
129
344
|
if (rawPrefix === 'android')
|
|
@@ -234,25 +449,25 @@ function buildLastXcodeSlotRecord(instanceOrId) {
|
|
|
234
449
|
};
|
|
235
450
|
}
|
|
236
451
|
function saveLastInstance(instanceOrId, slot) {
|
|
237
|
-
ensureConfigDir();
|
|
238
452
|
const record = buildLastInstanceRecord(instanceOrId);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
453
|
+
mutate((file, scopeKey) => {
|
|
454
|
+
const scope = ensureScope(file, scopeKey);
|
|
455
|
+
if (slot === 'xcode') {
|
|
456
|
+
const xcodeRecord = buildLastXcodeSlotRecord(instanceOrId);
|
|
457
|
+
if (xcodeRecord)
|
|
458
|
+
scope.xcode = xcodeRecord;
|
|
244
459
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
460
|
+
else if (record.type === 'android') {
|
|
461
|
+
scope.android = record;
|
|
462
|
+
}
|
|
463
|
+
else if (record.type === 'ios') {
|
|
464
|
+
scope.ios = record;
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
scope.xcode = record;
|
|
468
|
+
}
|
|
469
|
+
scope.lastUsedAt = new Date().toISOString();
|
|
470
|
+
});
|
|
256
471
|
}
|
|
257
472
|
function registerCreatedInstance(instanceOrId, relatedTypes = []) {
|
|
258
473
|
saveLastInstance(instanceOrId);
|
|
@@ -261,86 +476,90 @@ function registerCreatedInstance(instanceOrId, relatedTypes = []) {
|
|
|
261
476
|
}
|
|
262
477
|
}
|
|
263
478
|
function loadLastAndroidInstance() {
|
|
264
|
-
|
|
265
|
-
return data.android ?? null;
|
|
479
|
+
return readScope((0, scope_1.getScopeKey)()).android ?? null;
|
|
266
480
|
}
|
|
267
481
|
function loadLastIosInstance() {
|
|
268
|
-
|
|
269
|
-
return data.ios ?? null;
|
|
482
|
+
return readScope((0, scope_1.getScopeKey)()).ios ?? null;
|
|
270
483
|
}
|
|
271
484
|
function loadLastXcodeInstance() {
|
|
272
|
-
|
|
273
|
-
return data.xcode ?? null;
|
|
485
|
+
return readScope((0, scope_1.getScopeKey)()).xcode ?? null;
|
|
274
486
|
}
|
|
275
487
|
function sandboxXcodeIdFromLastIosInstance(instance) {
|
|
276
488
|
const sandboxXcodeUrl = instance?.sandboxXcodeUrl ?? instance?.status?.sandbox?.xcode?.url;
|
|
277
489
|
return sandboxXcodeUrl ? (0, xcode_sandbox_1.xcodeSandboxIdFromUrl)(sandboxXcodeUrl) : undefined;
|
|
278
490
|
}
|
|
279
491
|
function clearLastInstanceId(instanceId) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
492
|
+
mutate((file) => {
|
|
493
|
+
let changed = false;
|
|
494
|
+
for (const scope of Object.values(file.scopes)) {
|
|
495
|
+
const iosRecord = scope.ios;
|
|
496
|
+
for (const key of ['ios', 'android', 'xcode']) {
|
|
497
|
+
if (scope[key]?.id === instanceId) {
|
|
498
|
+
delete scope[key];
|
|
499
|
+
changed = true;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
const sandboxXcodeId = iosRecord?.id === instanceId ? sandboxXcodeIdFromLastIosInstance(iosRecord) : undefined;
|
|
503
|
+
if (sandboxXcodeId && scope.xcode?.type === 'xcode' && scope.xcode.id === sandboxXcodeId) {
|
|
504
|
+
delete scope.xcode;
|
|
505
|
+
changed = true;
|
|
506
|
+
}
|
|
287
507
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
if (sandboxXcodeId && data.xcode?.type === 'xcode' && data.xcode.id === sandboxXcodeId) {
|
|
291
|
-
delete data.xcode;
|
|
292
|
-
changed = true;
|
|
293
|
-
}
|
|
294
|
-
if (changed) {
|
|
295
|
-
ensureConfigDir();
|
|
296
|
-
fs_1.default.writeFileSync(LAST_INSTANCE_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });
|
|
297
|
-
}
|
|
508
|
+
return changed;
|
|
509
|
+
});
|
|
298
510
|
}
|
|
299
511
|
function saveInstanceCache(instanceId, data) {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
512
|
+
mutate((file) => {
|
|
513
|
+
let changed = false;
|
|
514
|
+
for (const scope of Object.values(file.scopes)) {
|
|
515
|
+
if (scope.android?.id === instanceId) {
|
|
516
|
+
scope.android = {
|
|
517
|
+
...scope.android,
|
|
518
|
+
...data,
|
|
519
|
+
type: 'android',
|
|
520
|
+
};
|
|
521
|
+
changed = true;
|
|
522
|
+
}
|
|
523
|
+
if (scope.ios?.id === instanceId) {
|
|
524
|
+
scope.ios = {
|
|
525
|
+
...scope.ios,
|
|
526
|
+
...data,
|
|
527
|
+
type: 'ios',
|
|
528
|
+
};
|
|
529
|
+
changed = true;
|
|
530
|
+
}
|
|
531
|
+
if (scope.xcode?.id === instanceId) {
|
|
532
|
+
scope.xcode =
|
|
533
|
+
scope.xcode.type === 'ios' ?
|
|
534
|
+
{ ...scope.xcode, ...data, type: 'ios' }
|
|
535
|
+
: { ...scope.xcode, ...data, type: 'xcode' };
|
|
536
|
+
changed = true;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
return changed;
|
|
540
|
+
});
|
|
329
541
|
}
|
|
330
542
|
function loadAndroidInstanceCache(instanceId) {
|
|
331
|
-
const
|
|
332
|
-
|
|
543
|
+
for (const scope of Object.values(readNormalizedFile().scopes)) {
|
|
544
|
+
if (scope.android?.id === instanceId)
|
|
545
|
+
return scope.android;
|
|
546
|
+
}
|
|
547
|
+
return null;
|
|
333
548
|
}
|
|
334
549
|
function loadIosInstanceCache(instanceId) {
|
|
335
|
-
const
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
550
|
+
for (const scope of Object.values(readNormalizedFile().scopes)) {
|
|
551
|
+
if (scope.ios?.id === instanceId)
|
|
552
|
+
return scope.ios;
|
|
553
|
+
if (scope.xcode?.type === 'ios' && scope.xcode.id === instanceId)
|
|
554
|
+
return scope.xcode;
|
|
555
|
+
}
|
|
340
556
|
return null;
|
|
341
557
|
}
|
|
342
558
|
function loadXcodeInstanceCache(instanceId) {
|
|
343
|
-
const
|
|
344
|
-
|
|
559
|
+
for (const scope of Object.values(readNormalizedFile().scopes)) {
|
|
560
|
+
if (scope.xcode?.type === 'xcode' && scope.xcode.id === instanceId)
|
|
561
|
+
return scope.xcode;
|
|
562
|
+
}
|
|
563
|
+
return null;
|
|
345
564
|
}
|
|
346
565
|
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { XcodeClient } from '@limrun/api';
|
|
2
|
+
/**
|
|
3
|
+
* Watches a workspace's `.limrun/bep.json` and, after each completed build,
|
|
4
|
+
* registers the built target's `.ipa` with the instance so it is installed on
|
|
5
|
+
* the attached simulator now (and replayed on a later attach). This is the
|
|
6
|
+
* client-side trigger for `lim xcode rbe` auto-install: only Bazel (on the
|
|
7
|
+
* client) knows the build finished and which CAS digest is the top-level `.ipa`,
|
|
8
|
+
* so the daemon holding the tunnel watches the BEP and the instance does the
|
|
9
|
+
* install server-side.
|
|
10
|
+
*
|
|
11
|
+
* Robustness is the priority: this runs inside the detached daemon that holds
|
|
12
|
+
* the only RBE tunnel, so every read/parse/HTTP error is caught and logged, and
|
|
13
|
+
* the watcher never throws into the daemon (a crash here would drop the tunnel
|
|
14
|
+
* mid-build). It is also idempotent: it acts once per Bazel invocation, even
|
|
15
|
+
* when a build reproduces an earlier `.ipa` digest (e.g. a `git stash` revert),
|
|
16
|
+
* because the instance keys "already installed" on the CAS digest.
|
|
17
|
+
*/
|
|
18
|
+
export type BepWatcherOptions = {
|
|
19
|
+
/** Absolute path to Bazel's build-event JSON log (`--build_event_json_file`). */
|
|
20
|
+
bepPath: string;
|
|
21
|
+
/** The build target to select from the BEP and install (e.g. //App:App). */
|
|
22
|
+
target: string;
|
|
23
|
+
/** Returns the XcodeClient to use; called per install so a refreshed client is picked up. */
|
|
24
|
+
getClient: () => XcodeClient;
|
|
25
|
+
/** Sink for status/diagnostic lines (the daemon redirects stdout/stderr to .limrun/rbe.log). */
|
|
26
|
+
log: (msg: string) => void;
|
|
27
|
+
/** Debounce window after a BEP change before acting. */
|
|
28
|
+
debounceMs?: number;
|
|
29
|
+
/** mtime-poll backstop interval (covers FSEvents coalescing/drops on macOS). */
|
|
30
|
+
pollIntervalMs?: number;
|
|
31
|
+
/** Delay before retrying a build after a transient install failure. */
|
|
32
|
+
retryDelayMs?: number;
|
|
33
|
+
/** Max transient-failure retries for one build before giving up (rebuild to retry). */
|
|
34
|
+
maxRetries?: number;
|
|
35
|
+
};
|
|
36
|
+
export type BepWatcher = {
|
|
37
|
+
/** Stops watching and awaits any in-flight registration. Idempotent. */
|
|
38
|
+
close: () => Promise<void>;
|
|
39
|
+
};
|
|
40
|
+
export declare function startBepWatcher(opts: BepWatcherOptions): BepWatcher;
|
|
41
|
+
//# sourceMappingURL=rbe-bep-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbe-bep-watcher.d.ts","sourceRoot":"","sources":["../../src/lib/rbe-bep-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,SAAS,EAAE,MAAM,WAAW,CAAC;IAC7B,gGAAgG;IAChG,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAuPnE"}
|