From dcc7a4cdcef79111c7d4548fc93f0ea0423a4617 Mon Sep 17 00:00:00 2001 From: uhooi Date: Wed, 4 Jan 2023 23:16:27 +0900 Subject: [PATCH 1/5] Add private --- Plugins/FormatPlugin/plugin.swift | 2 +- Plugins/LintPlugin/plugin.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index a89f7d65..395d20ec 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -3,7 +3,7 @@ import Foundation @main struct FormatPlugin { - func format(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { + private func format(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { let swiftFormatExec = URL(fileURLWithPath: tool.path.string) var arguments: [String] = ["format"] diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index 4dd72204..be61beba 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -3,7 +3,7 @@ import Foundation @main struct LintPlugin { - func lint(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { + private func lint(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { let swiftFormatExec = URL(fileURLWithPath: tool.path.string) var arguments: [String] = ["lint"] From 3701804ca1ec2baa2e7aff0a331f7ee993d4250f Mon Sep 17 00:00:00 2001 From: uhooi Date: Wed, 4 Jan 2023 23:21:44 +0900 Subject: [PATCH 2/5] Use if-let shorthand --- Plugins/FormatPlugin/plugin.swift | 2 +- Plugins/LintPlugin/plugin.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index 395d20ec..623575fc 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -12,7 +12,7 @@ struct FormatPlugin { arguments.append(contentsOf: ["--recursive", "--parallel", "--in-place"]) - if let configurationFilePath = configurationFilePath { + if let configurationFilePath { arguments.append(contentsOf: ["--configuration", configurationFilePath]) } diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index be61beba..c649db26 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -12,7 +12,7 @@ struct LintPlugin { arguments.append(contentsOf: ["--recursive", "--parallel", "--strict"]) - if let configurationFilePath = configurationFilePath { + if let configurationFilePath { arguments.append(contentsOf: ["--configuration", configurationFilePath]) } From 277e51223745cecdf8aca656a26d6d9f6fc8629c Mon Sep 17 00:00:00 2001 From: uhooi Date: Wed, 4 Jan 2023 23:42:41 +0900 Subject: [PATCH 3/5] Refactor swiftFormatArgs --- Plugins/FormatPlugin/plugin.swift | 13 +++++-------- Plugins/LintPlugin/plugin.swift | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index 623575fc..fd23a455 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -6,17 +6,14 @@ struct FormatPlugin { private func format(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { let swiftFormatExec = URL(fileURLWithPath: tool.path.string) - var arguments: [String] = ["format"] - - arguments.append(contentsOf: targetDirectories) - - arguments.append(contentsOf: ["--recursive", "--parallel", "--in-place"]) - + var swiftFormatArgs = ["format"] + swiftFormatArgs.append(contentsOf: targetDirectories) + swiftFormatArgs.append(contentsOf: ["--recursive", "--parallel", "--in-place"]) if let configurationFilePath { - arguments.append(contentsOf: ["--configuration", configurationFilePath]) + swiftFormatArgs.append(contentsOf: ["--configuration", configurationFilePath]) } - let process = try Process.run(swiftFormatExec, arguments: arguments) + let process = try Process.run(swiftFormatExec, arguments: swiftFormatArgs) process.waitUntilExit() if process.terminationReason == .exit && process.terminationStatus == 0 { diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index c649db26..45bde2fe 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -6,17 +6,14 @@ struct LintPlugin { private func lint(tool: PluginContext.Tool, targetDirectories: [String], configurationFilePath: String?) throws { let swiftFormatExec = URL(fileURLWithPath: tool.path.string) - var arguments: [String] = ["lint"] - - arguments.append(contentsOf: targetDirectories) - - arguments.append(contentsOf: ["--recursive", "--parallel", "--strict"]) - + var swiftFormatArgs = ["lint"] + swiftFormatArgs.append(contentsOf: targetDirectories) + swiftFormatArgs.append(contentsOf: ["--recursive", "--parallel", "--strict"]) if let configurationFilePath { - arguments.append(contentsOf: ["--configuration", configurationFilePath]) + swiftFormatArgs.append(contentsOf: ["--configuration", configurationFilePath]) } - let process = try Process.run(swiftFormatExec, arguments: arguments) + let process = try Process.run(swiftFormatExec, arguments: swiftFormatArgs) process.waitUntilExit() if process.terminationReason == .exit && process.terminationStatus == 0 { From cbdf6fdf34daeb8567101031f34aab8f47b8bdcc Mon Sep 17 00:00:00 2001 From: uhooi Date: Wed, 4 Jan 2023 23:43:23 +0900 Subject: [PATCH 4/5] Sort process --- Plugins/FormatPlugin/plugin.swift | 3 +-- Plugins/LintPlugin/plugin.swift | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index fd23a455..4a2b3845 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -36,11 +36,10 @@ extension FormatPlugin: CommandPlugin { var argExtractor = ArgumentExtractor(arguments) let targetNames = argExtractor.extractOption(named: "target") let targetsToFormat = try context.package.targets(named: targetNames) + let sourceCodeTargets = targetsToFormat.compactMap{ $0 as? SourceModuleTarget } let configurationFilePath = argExtractor.extractOption(named: "configuration").first - let sourceCodeTargets = targetsToFormat.compactMap{ $0 as? SourceModuleTarget } - try format( tool: swiftFormatTool, targetDirectories: sourceCodeTargets.map(\.directory.string), diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index 45bde2fe..e438335a 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -37,11 +37,10 @@ extension LintPlugin: CommandPlugin { var argExtractor = ArgumentExtractor(arguments) let targetNames = argExtractor.extractOption(named: "target") let targetsToFormat = try context.package.targets(named: targetNames) + let sourceCodeTargets = targetsToFormat.compactMap { $0 as? SourceModuleTarget } let configurationFilePath = argExtractor.extractOption(named: "configuration").first - let sourceCodeTargets = targetsToFormat.compactMap { $0 as? SourceModuleTarget } - try lint( tool: swiftFormatTool, targetDirectories: sourceCodeTargets.map(\.directory.string), From adecf36a2f9bce1588653c667f04b4b5f4f1f1b2 Mon Sep 17 00:00:00 2001 From: uhooi Date: Thu, 5 Jan 2023 16:33:59 +0900 Subject: [PATCH 5/5] Refactor targetDirectories --- Plugins/FormatPlugin/plugin.swift | 7 ++++--- Plugins/LintPlugin/plugin.swift | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Plugins/FormatPlugin/plugin.swift b/Plugins/FormatPlugin/plugin.swift index 4a2b3845..0cf049c8 100644 --- a/Plugins/FormatPlugin/plugin.swift +++ b/Plugins/FormatPlugin/plugin.swift @@ -35,14 +35,15 @@ extension FormatPlugin: CommandPlugin { var argExtractor = ArgumentExtractor(arguments) let targetNames = argExtractor.extractOption(named: "target") - let targetsToFormat = try context.package.targets(named: targetNames) - let sourceCodeTargets = targetsToFormat.compactMap{ $0 as? SourceModuleTarget } + let targetDirectories = try context.package.targets(named: targetNames) + .compactMap { $0 as? SourceModuleTarget } + .map(\.directory.string) let configurationFilePath = argExtractor.extractOption(named: "configuration").first try format( tool: swiftFormatTool, - targetDirectories: sourceCodeTargets.map(\.directory.string), + targetDirectories: targetDirectories, configurationFilePath: configurationFilePath ) } diff --git a/Plugins/LintPlugin/plugin.swift b/Plugins/LintPlugin/plugin.swift index e438335a..54a34e2a 100644 --- a/Plugins/LintPlugin/plugin.swift +++ b/Plugins/LintPlugin/plugin.swift @@ -36,14 +36,15 @@ extension LintPlugin: CommandPlugin { // Extract the arguments that specify what targets to format. var argExtractor = ArgumentExtractor(arguments) let targetNames = argExtractor.extractOption(named: "target") - let targetsToFormat = try context.package.targets(named: targetNames) - let sourceCodeTargets = targetsToFormat.compactMap { $0 as? SourceModuleTarget } + let targetDirectories = try context.package.targets(named: targetNames) + .compactMap { $0 as? SourceModuleTarget } + .map(\.directory.string) let configurationFilePath = argExtractor.extractOption(named: "configuration").first try lint( tool: swiftFormatTool, - targetDirectories: sourceCodeTargets.map(\.directory.string), + targetDirectories: targetDirectories, configurationFilePath: configurationFilePath ) }