@@ -67,23 +67,47 @@ extension SwiftPackageCommand {
67
67
}
68
68
69
69
func run( _ swiftCommandState: SwiftCommandState ) throws {
70
+ if !self . _swiftSettings. isEmpty {
71
+ try Self . editSwiftSettings (
72
+ of: self . target,
73
+ using: swiftCommandState,
74
+ self . swiftSettings,
75
+ verbose: !self . globalOptions. logging. quiet
76
+ )
77
+ }
78
+ }
79
+
80
+ package static func editSwiftSettings(
81
+ of target: String ,
82
+ using swiftCommandState: SwiftCommandState ,
83
+ _ settings: [ ( SwiftSetting , String ) ] ,
84
+ verbose: Bool = false
85
+ ) throws {
70
86
let workspace = try swiftCommandState. getActiveWorkspace ( )
71
87
guard let packagePath = try swiftCommandState. getWorkspaceRoot ( ) . packages. first else {
72
88
throw StringError ( " unknown package " )
73
89
}
74
90
75
- try self . applyEdits ( packagePath: packagePath, workspace: workspace)
91
+ try self . applyEdits (
92
+ packagePath: packagePath,
93
+ workspace: workspace,
94
+ target: target,
95
+ swiftSettings: settings
96
+ )
76
97
}
77
98
78
- private func applyEdits(
99
+ private static func applyEdits(
79
100
packagePath: Basics . AbsolutePath ,
80
- workspace: Workspace
101
+ workspace: Workspace ,
102
+ target: String ,
103
+ swiftSettings: [ ( SwiftSetting , String ) ] ,
104
+ verbose: Bool = false
81
105
) throws {
82
106
// Load the manifest file
83
107
let fileSystem = workspace. fileSystem
84
108
let manifestPath = packagePath. appending ( component: Manifest . filename)
85
109
86
- for ( setting, value) in try self . swiftSettings {
110
+ for (setting, value) in swiftSettings {
87
111
let manifestContents : ByteString
88
112
do {
89
113
manifestContents = try fileSystem. readFileContents ( manifestPath)
@@ -105,13 +129,13 @@ extension SwiftPackageCommand {
105
129
switch setting {
106
130
case . experimentalFeature:
107
131
editResult = try AddSwiftSetting . experimentalFeature (
108
- to: self . target,
132
+ to: target,
109
133
name: value,
110
134
manifest: manifestSyntax
111
135
)
112
136
case . upcomingFeature:
113
137
editResult = try AddSwiftSetting . upcomingFeature (
114
- to: self . target,
138
+ to: target,
115
139
name: value,
116
140
manifest: manifestSyntax
117
141
)
@@ -121,7 +145,7 @@ extension SwiftPackageCommand {
121
145
}
122
146
123
147
editResult = try AddSwiftSetting . languageMode (
124
- to: self . target,
148
+ to: target,
125
149
mode: mode,
126
150
manifest: manifestSyntax
127
151
)
@@ -131,7 +155,7 @@ extension SwiftPackageCommand {
131
155
}
132
156
133
157
editResult = try AddSwiftSetting . strictMemorySafety (
134
- to: self . target,
158
+ to: target,
135
159
manifest: manifestSyntax
136
160
)
137
161
}
@@ -140,7 +164,7 @@ extension SwiftPackageCommand {
140
164
to: fileSystem,
141
165
manifest: manifestSyntax,
142
166
manifestPath: manifestPath,
143
- verbose: ! self . globalOptions . logging . quiet
167
+ verbose: verbose
144
168
)
145
169
}
146
170
}
0 commit comments