Skip to content

Commit 2d7de34

Browse files
committed
feat: eject logs
Signed-off-by: Lessica <82flex@gmail.com>
1 parent 83f4c6c commit 2d7de34

File tree

2 files changed

+46
-19
lines changed

2 files changed

+46
-19
lines changed

TrollFools/EjectListView.swift

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,23 @@ struct EjectListView: View {
232232
}
233233

234234
private func deletePlugIns(at offsets: IndexSet) {
235+
var logFileURL: URL?
236+
235237
do {
236238
let plugInsToRemove = offsets.map { ejectList.filteredPlugIns[$0] }
237239
let plugInURLsToRemove = plugInsToRemove.map { $0.url }
238240

239241
let injector = try InjectorV3(ejectList.app.url)
242+
logFileURL = injector.latestLogFileURL
243+
244+
if injector.appID.isEmpty {
245+
injector.appID = ejectList.app.id
246+
}
247+
248+
if injector.teamID.isEmpty {
249+
injector.teamID = ejectList.app.teamID
250+
}
251+
240252
injector.useWeakReference = useWeakReference
241253
injector.preferMainExecutable = preferMainExecutable
242254
injector.injectStrategy = injectStrategy
@@ -248,33 +260,36 @@ struct EjectListView: View {
248260
} catch {
249261
DDLogError("\(error)", ddlog: InjectorV3.main.logger)
250262

251-
lastError = error
252-
isErrorOccurred = true
253-
}
254-
}
255-
256-
private func deletePlugIn(_ plugin: InjectedPlugIn) {
257-
do {
258-
let injector = try InjectorV3(ejectList.app.url)
259-
injector.useWeakReference = useWeakReference
260-
injector.preferMainExecutable = preferMainExecutable
261-
injector.injectStrategy = injectStrategy
263+
var userInfo: [String: Any] = [
264+
NSLocalizedDescriptionKey: error.localizedDescription,
265+
]
262266

263-
try injector.eject([plugin.url])
267+
if let logFileURL {
268+
userInfo[NSURLErrorKey] = logFileURL
269+
}
264270

265-
ejectList.app.reload()
266-
ejectList.reload()
267-
} catch {
268-
DDLogError("\(error)", ddlog: InjectorV3.main.logger)
271+
let nsErr = NSError(domain: gTrollFoolsErrorDomain, code: 0, userInfo: userInfo)
269272

270-
lastError = error
273+
lastError = nsErr
271274
isErrorOccurred = true
272275
}
273276
}
274277

275278
private func deleteAll() {
279+
var logFileURL: URL?
280+
276281
do {
277282
let injector = try InjectorV3(ejectList.app.url)
283+
logFileURL = injector.latestLogFileURL
284+
285+
if injector.appID.isEmpty {
286+
injector.appID = ejectList.app.id
287+
}
288+
289+
if injector.teamID.isEmpty {
290+
injector.teamID = ejectList.app.teamID
291+
}
292+
278293
injector.useWeakReference = useWeakReference
279294
injector.preferMainExecutable = preferMainExecutable
280295
injector.injectStrategy = injectStrategy
@@ -303,7 +318,17 @@ struct EjectListView: View {
303318
DispatchQueue.main.async {
304319
DDLogError("\(error)", ddlog: InjectorV3.main.logger)
305320

306-
lastError = error
321+
var userInfo: [String: Any] = [
322+
NSLocalizedDescriptionKey: error.localizedDescription,
323+
]
324+
325+
if let logFileURL {
326+
userInfo[NSURLErrorKey] = logFileURL
327+
}
328+
329+
let nsErr = NSError(domain: gTrollFoolsErrorDomain, code: 0, userInfo: userInfo)
330+
331+
lastError = nsErr
307332
isErrorOccurred = true
308333
}
309334
}

TrollFools/InjectView.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ struct InjectView: View {
140140
userInfo[NSURLErrorKey] = logFileURL
141141
}
142142

143-
return .failure(NSError(domain: gTrollFoolsErrorDomain, code: 0, userInfo: userInfo))
143+
let nsErr = NSError(domain: gTrollFoolsErrorDomain, code: 0, userInfo: userInfo)
144+
145+
return .failure(nsErr)
144146
}
145147
}
146148
}

0 commit comments

Comments
 (0)