Unverified Commit a61bff2f authored by Jenn Magder's avatar Jenn Magder Committed by GitHub

Show Xcode workspace clean output with verbose flag (#52860)

parent f65421aa
......@@ -79,7 +79,7 @@ Future<void> main(List<String> args) async {
AttachCommand(verboseHelp: verboseHelp),
BuildCommand(verboseHelp: verboseHelp),
ChannelCommand(verboseHelp: verboseHelp),
CleanCommand(),
CleanCommand(verbose: verbose),
ConfigCommand(verboseHelp: verboseHelp),
CreateCommand(),
DaemonCommand(hidden: !verboseHelp),
......
......@@ -15,10 +15,14 @@ import '../project.dart';
import '../runner/flutter_command.dart';
class CleanCommand extends FlutterCommand {
CleanCommand() {
CleanCommand({
bool verbose = false,
}) : _verbose = verbose {
requiresPubspecYaml();
}
final bool _verbose;
@override
final String name = 'clean';
......@@ -69,7 +73,7 @@ class CleanCommand extends FlutterCommand {
final Directory xcodeWorkspace = xcodeProject.xcodeWorkspace;
final XcodeProjectInfo projectInfo = await globals.xcodeProjectInterpreter.getInfo(xcodeWorkspace.parent.path);
for (final String scheme in projectInfo.schemes) {
await globals.xcodeProjectInterpreter.cleanWorkspace(xcodeWorkspace.path, scheme);
await globals.xcodeProjectInterpreter.cleanWorkspace(xcodeWorkspace.path, scheme, verbose: _verbose);
}
} on Exception catch (error) {
globals.printTrace('Could not clean Xcode workspace: $error');
......
......@@ -364,14 +364,15 @@ class XcodeProjectInterpreter {
}
}
Future<void> cleanWorkspace(String workspacePath, String scheme) async {
Future<void> cleanWorkspace(String workspacePath, String scheme, { bool verbose = false }) async {
await _processUtils.run(<String>[
_executable,
'-workspace',
workspacePath,
'-scheme',
scheme,
'-quiet',
if (!verbose)
'-quiet',
'clean',
...environmentVariablesAsXcodeBuildSettings(_platform)
], workingDirectory: _fileSystem.currentDirectory.path);
......
......@@ -72,7 +72,18 @@ void main() {
expect(projectUnderTest.macos.ephemeralDirectory.existsSync(), isFalse);
expect(projectUnderTest.windows.ephemeralDirectory.existsSync(), isFalse);
verify(mockXcodeProjectInterpreter.cleanWorkspace(any, 'Runner')).called(2);
verify(mockXcodeProjectInterpreter.cleanWorkspace(any, 'Runner', verbose: false)).called(2);
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
Xcode: () => mockXcode,
XcodeProjectInterpreter: () => mockXcodeProjectInterpreter,
});
testUsingContext('$CleanCommand cleans Xcode verbosely', () async {
when(mockXcode.isInstalledAndMeetsVersionCheck).thenReturn(true);
await CleanCommand(verbose: true).runCommand();
verify(mockXcodeProjectInterpreter.cleanWorkspace(any, 'Runner', verbose: true)).called(2);
}, overrides: <Type, Generator>{
FileSystem: () => fs,
ProcessManager: () => FakeProcessManager.any(),
......
......@@ -401,7 +401,7 @@ class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter {
}
@override
Future<void> cleanWorkspace(String workspacePath, String scheme) {
Future<void> cleanWorkspace(String workspacePath, String scheme, { bool verbose = false }) {
return null;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment