aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2018-12-05 15:23:55 +0530
committerRoopesh Chander <roop@roopc.net>2018-12-07 12:36:19 +0530
commitf6faffa4c1e0c11b7e2756d18d747dde43add529 (patch)
tree89dd0fadd08b20b09cc0769b9fef57ad684e2ba8
parentNE: Logging: Log file should begin with version numbers and tunnel name (diff)
downloadwireguard-apple-f6faffa4c1e0c11b7e2756d18d747dde43add529.tar.xz
wireguard-apple-f6faffa4c1e0c11b7e2756d18d747dde43add529.zip
Refactoring: Consolidate file deletion into a separate function
Signed-off-by: Roopesh Chander <roop@roopc.net>
-rw-r--r--WireGuard/Shared/FileManager+Extension.swift10
-rw-r--r--WireGuard/WireGuard/UI/iOS/AppDelegate.swift8
-rw-r--r--WireGuard/WireGuard/UI/iOS/SettingsTableViewController.swift15
3 files changed, 16 insertions, 17 deletions
diff --git a/WireGuard/Shared/FileManager+Extension.swift b/WireGuard/Shared/FileManager+Extension.swift
index 7b25ffb..4d9bf4f 100644
--- a/WireGuard/Shared/FileManager+Extension.swift
+++ b/WireGuard/Shared/FileManager+Extension.swift
@@ -16,4 +16,14 @@ extension FileManager {
}
return sharedFolderURL.appendingPathComponent("lastActivatedTunnelLog.txt")
}
+
+ static func deleteFile(at url: URL) -> Bool {
+ do {
+ try FileManager.default.removeItem(at: url)
+ } catch(let e) {
+ os_log("Failed to delete file '%{public}@': %{public}@", log: OSLog.default, type: .debug, url.absoluteString, e.localizedDescription)
+ return false
+ }
+ return true
+ }
}
diff --git a/WireGuard/WireGuard/UI/iOS/AppDelegate.swift b/WireGuard/WireGuard/UI/iOS/AppDelegate.swift
index 7ba77e4..3b414dd 100644
--- a/WireGuard/WireGuard/UI/iOS/AppDelegate.swift
+++ b/WireGuard/WireGuard/UI/iOS/AppDelegate.swift
@@ -27,14 +27,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
- defer {
- do {
- try FileManager.default.removeItem(at: url)
- } catch {
- os_log("Failed to remove item from Inbox: %{public}@", log: OSLog.default, type: .debug, url.absoluteString)
- }
- }
mainVC?.tunnelsListVC?.importFromFile(url: url)
+ _ = FileManager.deleteFile(at: url)
return true
}
diff --git a/WireGuard/WireGuard/UI/iOS/SettingsTableViewController.swift b/WireGuard/WireGuard/UI/iOS/SettingsTableViewController.swift
index 6f8410e..7beb2e9 100644
--- a/WireGuard/WireGuard/UI/iOS/SettingsTableViewController.swift
+++ b/WireGuard/WireGuard/UI/iOS/SettingsTableViewController.swift
@@ -69,12 +69,9 @@ class SettingsTableViewController: UITableViewController {
guard let destinationDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else {
return
}
+
let destinationURL = destinationDir.appendingPathComponent("wireguard-export.zip")
- do {
- try FileManager.default.removeItem(at: destinationURL)
- } catch {
- os_log("Failed to delete file: %{public}@ : %{public}@", log: OSLog.default, type: .error, destinationURL.absoluteString, error.localizedDescription)
- }
+ _ = FileManager.deleteFile(at: destinationURL)
let count = tunnelsManager.numberOfTunnels()
let tunnelConfigurations = (0 ..< count).compactMap { tunnelsManager.tunnel(at: $0).tunnelConfiguration() }
@@ -102,10 +99,8 @@ class SettingsTableViewController: UITableViewController {
let destinationURL = destinationDir.appendingPathComponent("WireGuard_iOS_log_\(timeStampString).txt")
if (FileManager.default.fileExists(atPath: destinationURL.path)) {
- do {
- try FileManager.default.removeItem(at: destinationURL)
- } catch {
- os_log("Failed to delete file: %{public}@ : %{public}@", log: OSLog.default, type: .error, destinationURL.absoluteString, error.localizedDescription)
+ let isDeleted = FileManager.deleteFile(at: destinationURL)
+ if (!isDeleted) {
showErrorAlert(title: "No log available", message: "The pre-existing log could not be cleared")
return
}
@@ -131,7 +126,7 @@ class SettingsTableViewController: UITableViewController {
activityVC.popoverPresentationController?.sourceRect = sourceView.bounds
activityVC.completionWithItemsHandler = { (_, _, _, _) in
// Remove the exported log file after the activity has completed
- try? FileManager.default.removeItem(at: destinationURL)
+ _ = FileManager.deleteFile(at: destinationURL)
}
self.present(activityVC, animated: true)
}