diff --git a/packages/flutter_tools/lib/src/commands/build_aot.dart b/packages/flutter_tools/lib/src/commands/build_aot.dart index 8551cfde4d1..ce3656a819d 100644 --- a/packages/flutter_tools/lib/src/commands/build_aot.dart +++ b/packages/flutter_tools/lib/src/commands/build_aot.dart @@ -56,7 +56,7 @@ class BuildAotCommand extends BuildSubCommand { String typeName = path.basename(tools.getEngineArtifactsDirectory(platform, getBuildMode()).path); Status status = logger.startProgress('Building AOT snapshot in ${getModeName(getBuildMode())} mode ($typeName)...'); String outputPath = await buildAotSnapshot( - findMainDartFile(argResults['target']), + findMainDartFile(targetFile), platform, getBuildMode(), outputPath: argResults['output-dir'], diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart index 4c5fcb16906..df7ea5cf339 100644 --- a/packages/flutter_tools/lib/src/commands/build_apk.dart +++ b/packages/flutter_tools/lib/src/commands/build_apk.dart @@ -208,7 +208,7 @@ class BuildApkCommand extends BuildSubCommand { return await buildAndroidWithGradle( TargetPlatform.android_arm, getBuildMode(), - target: argResults['target'] + target: targetFile ); } else { // TODO(devoncarew): This command should take an arg for the output type (arm / x64). @@ -219,7 +219,7 @@ class BuildApkCommand extends BuildSubCommand { manifest: argResults['manifest'], resources: argResults['resources'], outputFile: argResults['output-file'], - target: argResults['target'], + target: targetFile, flxPath: argResults['flx'], aotPath: argResults['aot-path'], keystore: (argResults['keystore'] ?? '').isEmpty ? null : new ApkKeystoreInfo( diff --git a/packages/flutter_tools/lib/src/commands/build_flx.dart b/packages/flutter_tools/lib/src/commands/build_flx.dart index 364c40d4fb6..a41a682e0a8 100644 --- a/packages/flutter_tools/lib/src/commands/build_flx.dart +++ b/packages/flutter_tools/lib/src/commands/build_flx.dart @@ -41,7 +41,7 @@ class BuildFlxCommand extends BuildSubCommand { String outputPath = argResults['output-file']; return await build( - mainPath: argResults['target'], + mainPath: targetFile, manifestPath: argResults['manifest'], outputPath: outputPath, snapshotPath: argResults['snapshot'], diff --git a/packages/flutter_tools/lib/src/commands/build_ios.dart b/packages/flutter_tools/lib/src/commands/build_ios.dart index d3400d55a20..8ed0a2336b3 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios.dart @@ -58,7 +58,7 @@ class BuildIOSCommand extends BuildSubCommand { XcodeBuildResult result = await buildXcodeProject( app: app, mode: getBuildMode(), - target: argResults['target'], + target: targetFile, buildForDevice: !forSimulator, codesign: shouldCodesign ); diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index 6b50e30c10b..abe4c0755fd 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart @@ -160,7 +160,7 @@ class DriveCommand extends RunCommandBase { } String _getTestFile() { - String appFile = path.normalize(target); + String appFile = path.normalize(targetFile); // This command extends `flutter start` and therefore CWD == package dir String packageDir = getCurrentDirectory(); @@ -266,7 +266,7 @@ void restoreAppStarter() { } Future startApp(DriveCommand command) async { - String mainPath = findMainDartFile(command.target); + String mainPath = findMainDartFile(command.targetFile); if (await fs.type(mainPath) != FileSystemEntityType.FILE) { printError('Tried to run $mainPath, but that file does not exist.'); return 1; @@ -277,7 +277,7 @@ Future startApp(DriveCommand command) async { printTrace('Building an APK.'); int result = await build_apk.buildApk( command.device.platform, - target: command.target, + target: command.targetFile, buildMode: command.getBuildMode() ); diff --git a/packages/flutter_tools/lib/src/commands/listen.dart b/packages/flutter_tools/lib/src/commands/listen.dart index 966dd2274df..8dfed7399c1 100644 --- a/packages/flutter_tools/lib/src/commands/listen.dart +++ b/packages/flutter_tools/lib/src/commands/listen.dart @@ -62,7 +62,7 @@ class ListenCommand extends RunCommandBase { result = await startApp( deviceForCommand, - target: target, + target: targetFile, install: firstTime, stop: true, debuggingOptions: new DebuggingOptions.enabled(getBuildMode()), diff --git a/packages/flutter_tools/lib/src/commands/refresh.dart b/packages/flutter_tools/lib/src/commands/refresh.dart index b0f7a3fece6..3eb130feab8 100644 --- a/packages/flutter_tools/lib/src/commands/refresh.dart +++ b/packages/flutter_tools/lib/src/commands/refresh.dart @@ -40,7 +40,7 @@ class RefreshCommand extends FlutterCommand { Directory tempDir = await Directory.systemTemp.createTemp('flutter_tools'); try { String snapshotPath = path.join(tempDir.path, 'snapshot_blob.bin'); - int result = await createSnapshot(mainPath: argResults['target'], snapshotPath: snapshotPath); + int result = await createSnapshot(mainPath: targetFile, snapshotPath: snapshotPath); if (result != 0) { printError('Failed to run the Flutter compiler. Exit code: $result'); diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 7ff0d62d8cd..f4b51751667 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -33,7 +33,6 @@ abstract class RunCommandBase extends FlutterCommand { } bool get traceStartup => argResults['trace-startup']; - String get target => argResults['target']; String get route => argResults['route']; } @@ -135,7 +134,7 @@ class RunCommand extends RunCommandBase { if (argResults['resident']) { RunAndStayResident runner = new RunAndStayResident( deviceForCommand, - target: target, + target: targetFile, debuggingOptions: options, hotMode: argResults['hot'] ); @@ -150,7 +149,7 @@ class RunCommand extends RunCommandBase { // using the `RunAndStayResident` class. return startApp( deviceForCommand, - target: target, + target: targetFile, stop: argResults['full-restart'], install: true, debuggingOptions: options, diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index cb476b5dfe3..e127df209ee 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -53,6 +53,15 @@ abstract class FlutterCommand extends Command { _usesTargetOption = true; } + String get targetFile { + if (argResults.wasParsed('target')) + return argResults['target']; + else if (argResults.rest.isNotEmpty) + return argResults.rest.first; + else + return flx.defaultMainPath; + } + void usesPubOption() { argParser.addFlag('pub', defaultsTo: true, @@ -184,7 +193,7 @@ abstract class FlutterCommand extends Command { } if (_usesTargetOption) { - String targetPath = argResults['target']; + String targetPath = targetFile; if (!FileSystemEntity.isFileSync(targetPath)) { printError('Target file "$targetPath" not found.'); return false;