Skip to content

Commit 921ed4d

Browse files
committed
refactor(lockdown): remove interactive UDID selection prompt
1 parent ecef04a commit 921ed4d

File tree

1 file changed

+7
-65
lines changed

1 file changed

+7
-65
lines changed

src/lib/lockdown/index.ts

Lines changed: 7 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -30,61 +30,6 @@ interface LockdownServiceInfo {
3030
device: Device;
3131
}
3232

33-
/**
34-
* Simple interactive UDID selector using arrow keys, defaults if only one device
35-
*/
36-
const promptUserToSelectUDID = async (devices: Device[]): Promise<string> => {
37-
if (devices.length === 1) {
38-
const single = devices[0].Properties.SerialNumber;
39-
log.info(`Only one device found, selecting UDID: ${single}`);
40-
return single;
41-
}
42-
43-
return await new Promise<string>((resolve) => {
44-
let selected = 0;
45-
const render = () => {
46-
// eslint-disable-next-line no-console
47-
console.clear();
48-
log.info('Select a device UDID:');
49-
devices.forEach((d, i) => {
50-
const prefix = i === selected ? '>' : ' ';
51-
log.info(
52-
`${prefix} ${d.Properties.SerialNumber} - ${d.Properties.ConnectionType}`,
53-
);
54-
});
55-
};
56-
57-
process.stdin.setRawMode(true);
58-
process.stdin.resume();
59-
process.stdin.setEncoding('utf8');
60-
61-
const onKey = (key: string) => {
62-
if (key === '\u0003') {
63-
log.info('User canceled selection (Ctrl+C)');
64-
process.exit();
65-
} else if (key === '\u001B[A') {
66-
selected = (selected - 1 + devices.length) % devices.length;
67-
render();
68-
} else if (key === '\u001B[B') {
69-
selected = (selected + 1) % devices.length;
70-
render();
71-
} else if (key === '\r') {
72-
process.stdin.setRawMode(false);
73-
process.stdin.pause();
74-
process.stdin.removeListener('data', onKey);
75-
const udid = devices[selected].Properties.SerialNumber;
76-
// eslint-disable-next-line no-console
77-
console.clear();
78-
log.info(`Selected UDID: ${udid}`);
79-
resolve(udid);
80-
}
81-
};
82-
83-
render();
84-
process.stdin.on('data', onKey);
85-
});
86-
};
87-
8833
/**
8934
* Upgrades a socket to TLS
9035
*/
@@ -240,10 +185,10 @@ export class LockdownService extends BasePlistService {
240185
}
241186

242187
/**
243-
* Creates a LockdownService, optionally prompting for UDID
188+
* Creates a LockdownService using the provided UDID
244189
*/
245190
export async function createLockdownServiceByUDID(
246-
udid?: string,
191+
udid: string,
247192
port = 62078,
248193
autoSecure = true,
249194
): Promise<LockdownServiceInfo> {
@@ -261,16 +206,13 @@ export async function createLockdownServiceByUDID(
261206
throw new Error('No devices connected');
262207
}
263208

264-
// Determine UDID: use provided if valid, otherwise prompt
265-
let selectedUDID: string;
266-
if (udid && devices.some((d) => d.Properties.SerialNumber === udid)) {
267-
log.info(`Using provided UDID: ${udid}`);
268-
selectedUDID = udid;
269-
} else {
270-
selectedUDID = await promptUserToSelectUDID(devices);
209+
// Verify the provided UDID exists in connected devices
210+
if (!devices.some((d) => d.Properties.SerialNumber === udid)) {
211+
throw new Error(`Provided UDID ${udid} not found among connected devices`);
271212
}
272213

273-
log.info('Selected UDID:', selectedUDID);
214+
const selectedUDID = udid;
215+
log.info('Using UDID:', selectedUDID);
274216

275217
const device = devices.find(
276218
(d) => d.Properties.SerialNumber === selectedUDID,

0 commit comments

Comments
 (0)