INNER CODE UNIT · Swift
performCommand
skiptools/skip · Plugins/SkipLink/SkipLinkPlugin.swift:7
func performCommand(context: PackagePlugin.PluginContext, arguments: [String]) async throws {
let packageID = context.package.id
let packageFolder = URL(fileURLWithPath: context.package.directory.string)
let skipLinkFolder = packageFolder.appendingPathComponent("SkipLink")
// When ran from Xcode, the plugin command is invoked with `--target` arguments,
// specifying the targets selected in the plugin dialog.
var argumentExtractor = ArgumentExtractor(arguments)
let inputTargets = argumentExtractor.extractOption(named: "target")
let skipLinkOutut = URL(fileURLWithPath: context.pluginWorkDirectory.string)
for targetName in inputTargets {
let skipstoneTargetOutput = skipLinkOutut
.deletingLastPathComponent()
.appendingPathComponent(packageID + ".output")
.appendingPathComponent(targetName)
.appendingPathComponent("skipstone")