mirror of
https://github.com/flutter/flutter
synced 2024-10-12 19:23:02 +00:00
[flutter_tools] do not check for pubspec.yaml in packages forward command (#81059)
This commit is contained in:
parent
307e381935
commit
84bc2382f7
|
@ -23,7 +23,6 @@ import '../runner/flutter_command.dart';
|
||||||
class PackagesCommand extends FlutterCommand {
|
class PackagesCommand extends FlutterCommand {
|
||||||
PackagesCommand() {
|
PackagesCommand() {
|
||||||
addSubcommand(PackagesGetCommand('get', false));
|
addSubcommand(PackagesGetCommand('get', false));
|
||||||
//addSubcommand(PackagesGetCommand('upgrade', true));
|
|
||||||
addSubcommand(PackagesInteractiveGetCommand('upgrade', 'Upgrade the current package\'s dependencies to latest versions.'));
|
addSubcommand(PackagesInteractiveGetCommand('upgrade', 'Upgrade the current package\'s dependencies to latest versions.'));
|
||||||
addSubcommand(PackagesInteractiveGetCommand('add', 'Add a dependency to pubspec.yaml.'));
|
addSubcommand(PackagesInteractiveGetCommand('add', 'Add a dependency to pubspec.yaml.'));
|
||||||
addSubcommand(PackagesInteractiveGetCommand('remove', 'Removes a dependency from the current package.'));
|
addSubcommand(PackagesInteractiveGetCommand('remove', 'Removes a dependency from the current package.'));
|
||||||
|
@ -271,9 +270,7 @@ class PackagesPassthroughCommand extends FlutterCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PackagesInteractiveGetCommand extends FlutterCommand {
|
class PackagesInteractiveGetCommand extends FlutterCommand {
|
||||||
PackagesInteractiveGetCommand(this._commandName, this._description) {
|
PackagesInteractiveGetCommand(this._commandName, this._description);
|
||||||
requiresPubspecYaml();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ArgParser argParser = ArgParser.allowAnything();
|
ArgParser argParser = ArgParser.allowAnything();
|
||||||
|
@ -298,10 +295,9 @@ class PackagesInteractiveGetCommand extends FlutterCommand {
|
||||||
@override
|
@override
|
||||||
Future<FlutterCommandResult> runCommand() async {
|
Future<FlutterCommandResult> runCommand() async {
|
||||||
List<String> rest = argResults.rest;
|
List<String> rest = argResults.rest;
|
||||||
|
final bool isHelp = rest.contains('-h') || rest.contains('--help');
|
||||||
String target;
|
String target;
|
||||||
if (rest.length == 1 &&
|
if (rest.length == 1 && (rest[0].contains('/') || rest[0].contains(r'\'))) {
|
||||||
(rest[0].contains('/') ||
|
|
||||||
rest[0].contains(r'\'))) {
|
|
||||||
// HACK: Supporting flutter specific behavior where you can pass a
|
// HACK: Supporting flutter specific behavior where you can pass a
|
||||||
// folder to the command.
|
// folder to the command.
|
||||||
target = findProjectRoot(globals.fs, rest[0]);
|
target = findProjectRoot(globals.fs, rest[0]);
|
||||||
|
@ -309,43 +305,45 @@ class PackagesInteractiveGetCommand extends FlutterCommand {
|
||||||
} else {
|
} else {
|
||||||
target = findProjectRoot(globals.fs);
|
target = findProjectRoot(globals.fs);
|
||||||
}
|
}
|
||||||
if (target == null) {
|
|
||||||
throwToolExit('Expected to find project root in '
|
|
||||||
'current working directory.');
|
|
||||||
}
|
|
||||||
final FlutterProject flutterProject = FlutterProject.fromDirectory(globals.fs.directory(target));
|
|
||||||
|
|
||||||
if (flutterProject.manifest.generateSyntheticPackage) {
|
FlutterProject flutterProject;
|
||||||
final Environment environment = Environment(
|
if (!isHelp) {
|
||||||
artifacts: globals.artifacts,
|
if (target == null) {
|
||||||
logger: globals.logger,
|
throwToolExit('Expected to find project root in current working directory.');
|
||||||
cacheDir: globals.cache.getRoot(),
|
}
|
||||||
engineVersion: globals.flutterVersion.engineRevision,
|
flutterProject = FlutterProject.fromDirectory(globals.fs.directory(target));
|
||||||
fileSystem: globals.fs,
|
|
||||||
flutterRootDir: globals.fs.directory(Cache.flutterRoot),
|
|
||||||
outputDir: globals.fs.directory(getBuildDirectory()),
|
|
||||||
processManager: globals.processManager,
|
|
||||||
platform: globals.platform,
|
|
||||||
projectDir: flutterProject.directory,
|
|
||||||
);
|
|
||||||
|
|
||||||
await generateLocalizationsSyntheticPackage(
|
if (flutterProject.manifest.generateSyntheticPackage) {
|
||||||
environment: environment,
|
final Environment environment = Environment(
|
||||||
buildSystem: globals.buildSystem,
|
artifacts: globals.artifacts,
|
||||||
);
|
logger: globals.logger,
|
||||||
|
cacheDir: globals.cache.getRoot(),
|
||||||
|
engineVersion: globals.flutterVersion.engineRevision,
|
||||||
|
fileSystem: globals.fs,
|
||||||
|
flutterRootDir: globals.fs.directory(Cache.flutterRoot),
|
||||||
|
outputDir: globals.fs.directory(getBuildDirectory()),
|
||||||
|
processManager: globals.processManager,
|
||||||
|
platform: globals.platform,
|
||||||
|
projectDir: flutterProject.directory,
|
||||||
|
);
|
||||||
|
|
||||||
|
await generateLocalizationsSyntheticPackage(
|
||||||
|
environment: environment,
|
||||||
|
buildSystem: globals.buildSystem,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<String> subArgs = rest.toList()
|
final List<String> subArgs = rest.toList()..removeWhere((String arg) => arg == '--');
|
||||||
..removeWhere((String arg) => arg == '--');
|
|
||||||
await pub.interactively(
|
await pub.interactively(
|
||||||
<String>[name, ...subArgs],
|
<String>[name, ...subArgs],
|
||||||
directory: target,
|
directory: target,
|
||||||
stdio: globals.stdio,
|
stdio: globals.stdio,
|
||||||
touchesPackageConfig: true,
|
touchesPackageConfig: !isHelp,
|
||||||
generateSyntheticPackage: flutterProject.manifest.generateSyntheticPackage,
|
generateSyntheticPackage: flutterProject?.manifest?.generateSyntheticPackage ?? false,
|
||||||
);
|
);
|
||||||
|
|
||||||
await flutterProject.regeneratePlatformSpecificTooling();
|
await flutterProject?.regeneratePlatformSpecificTooling();
|
||||||
return FlutterCommandResult.success();
|
return FlutterCommandResult.success();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -525,5 +525,31 @@ void main() {
|
||||||
platform: globals.platform,
|
platform: globals.platform,
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testUsingContext('upgrade does not check for pubspec.yaml if -h/--help is passed', () async {
|
||||||
|
Cache.flutterRoot = '';
|
||||||
|
processManager.addCommand(
|
||||||
|
FakeCommand(command: const <String>[
|
||||||
|
'/bin/cache/dart-sdk/bin/pub', 'upgrade', '-h'],
|
||||||
|
stdin: IOSink(StreamController<List<int>>().sink),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
await createTestCommandRunner(PackagesCommand()).run(<String>['pub', 'upgrade', '-h']);
|
||||||
|
|
||||||
|
expect(processManager, hasNoRemainingExpectations);
|
||||||
|
}, overrides: <Type, Generator>{
|
||||||
|
FileSystem: () => MemoryFileSystem.test(),
|
||||||
|
Platform: () => FakePlatform(operatingSystem: 'linux', environment: <String, String>{}),
|
||||||
|
ProcessManager: () => processManager,
|
||||||
|
Stdio: () => mockStdio,
|
||||||
|
Pub: () => Pub(
|
||||||
|
fileSystem: globals.fs,
|
||||||
|
logger: globals.logger,
|
||||||
|
processManager: globals.processManager,
|
||||||
|
usage: globals.flutterUsage,
|
||||||
|
botDetector: globals.botDetector,
|
||||||
|
platform: globals.platform,
|
||||||
|
),
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue