in FishyTransport/Plugins/FishyActorTransportPlugin/FishyPlugin.swift [19:48]
func createBuildCommands(context: TargetBuildContext) throws -> [Command] {
let toolName = "FishyActorsGenerator"
let genTool = try context.tool(named: toolName)
let generatorPath = try context.tool(named: toolName).path
let inputFiles = context.inputFiles
.map { $0.path }
.filter { $0.extension?.lowercased() == "swift" }
let buckets = 5 // # of buckets for consistent hashing
let outputFiles = !inputFiles.isEmpty ? (0..<buckets)
.map {
context.pluginWorkDirectory.appending("GeneratedFishyActors_\($0).swift")
} : []
let command = Command.buildCommand(
displayName: "Distributed Actors: Generating FISHY actors for \(context.targetName)",
executable: generatorPath,
arguments: [
"--verbose",
"--source-directory", context.targetDirectory.string,
"--target-directory", context.pluginWorkDirectory.string,
"--buckets", "\(buckets)",
],
inputFiles: inputFiles,
outputFiles: outputFiles
)
return [command]
}