Merge pull request #2139 from devoncarew/doctor_create
run flutter doctor as part of create
This commit is contained in:
commit
dc0e97e51a
@ -80,13 +80,6 @@ class CreateCommand extends Command {
|
|||||||
|
|
||||||
printStatus('');
|
printStatus('');
|
||||||
|
|
||||||
String message = '''
|
|
||||||
All done! To run your application:
|
|
||||||
|
|
||||||
\$ cd ${projectDir.path}
|
|
||||||
\$ flutter run
|
|
||||||
''';
|
|
||||||
|
|
||||||
if (argResults['pub']) {
|
if (argResults['pub']) {
|
||||||
int code = await pubGet(directory: projectDir.path);
|
int code = await pubGet(directory: projectDir.path);
|
||||||
if (code != 0)
|
if (code != 0)
|
||||||
@ -94,7 +87,32 @@ All done! To run your application:
|
|||||||
}
|
}
|
||||||
|
|
||||||
printStatus('');
|
printStatus('');
|
||||||
printStatus(message);
|
|
||||||
|
// Run doctor; tell the user the next steps.
|
||||||
|
if (doctor.canLaunchAnything) {
|
||||||
|
// Let them know a summary of the state of their tooling.
|
||||||
|
doctor.summary();
|
||||||
|
|
||||||
|
printStatus('''
|
||||||
|
All done! In order to run your application, type:
|
||||||
|
|
||||||
|
\$ cd ${projectDir.path}
|
||||||
|
\$ flutter run
|
||||||
|
''');
|
||||||
|
} else {
|
||||||
|
printStatus("You'll need to install additional components before you can run "
|
||||||
|
"your Flutter app:");
|
||||||
|
printStatus('');
|
||||||
|
|
||||||
|
// Give the user more detailed analysis.
|
||||||
|
doctor.diagnose();
|
||||||
|
printStatus('');
|
||||||
|
printStatus("After installing components, run 'flutter doctor' in order to "
|
||||||
|
"re-validate your setup.");
|
||||||
|
printStatus("When complete, type 'flutter run' from the '${projectDir.path}' "
|
||||||
|
"directory in order to launch your app.");
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +123,7 @@ All done! To run your application:
|
|||||||
String projectIdentifier = _createProjectIdentifier(path.basename(dirPath));
|
String projectIdentifier = _createProjectIdentifier(path.basename(dirPath));
|
||||||
String relativeFlutterPackagesDirectory = path.relative(flutterPackagesDirectory, from: dirPath);
|
String relativeFlutterPackagesDirectory = path.relative(flutterPackagesDirectory, from: dirPath);
|
||||||
|
|
||||||
printStatus('Creating ${path.basename(projectName)}...');
|
printStatus('Creating project ${path.basename(projectName)}:');
|
||||||
|
|
||||||
projectDir.createSync(recursive: true);
|
projectDir.createSync(recursive: true);
|
||||||
|
|
||||||
@ -117,7 +135,7 @@ All done! To run your application:
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (renderDriverTest)
|
if (renderDriverTest)
|
||||||
templateContext['withDriverTest?'] = {};
|
templateContext['withDriverTest?'] = <String, dynamic>{};
|
||||||
|
|
||||||
Template createTemplate = new Template.fromName('create');
|
Template createTemplate = new Template.fromName('create');
|
||||||
createTemplate.render(new Directory(dirPath), templateContext,
|
createTemplate.render(new Directory(dirPath), templateContext,
|
||||||
|
@ -29,7 +29,7 @@ Future<int> pubGet({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!pubSpecLock.existsSync() || pubSpecYaml.lastModifiedSync().isAfter(pubSpecLock.lastModifiedSync())) {
|
if (!pubSpecLock.existsSync() || pubSpecYaml.lastModifiedSync().isAfter(pubSpecLock.lastModifiedSync())) {
|
||||||
printStatus("Running 'pub get' in '$directory'...");
|
printStatus("Running 'pub get' in $directory${Platform.pathSeparator}...");
|
||||||
int code = await runCommandAndStreamOutput(
|
int code = await runCommandAndStreamOutput(
|
||||||
<String>[sdkBinaryName('pub'), '--verbosity=warning', 'get'],
|
<String>[sdkBinaryName('pub'), '--verbosity=warning', 'get'],
|
||||||
workingDirectory: directory
|
workingDirectory: directory
|
||||||
|
@ -38,8 +38,7 @@ class Template {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<FileSystemEntity> templateFiles =
|
List<FileSystemEntity> templateFiles = templateSource.listSync(recursive: true);
|
||||||
templateSource.listSync(recursive: true);
|
|
||||||
|
|
||||||
for (FileSystemEntity entity in templateFiles) {
|
for (FileSystemEntity entity in templateFiles) {
|
||||||
if (entity is! File) {
|
if (entity is! File) {
|
||||||
@ -67,8 +66,7 @@ class Template {
|
|||||||
|
|
||||||
String destinationDirPath = destination.absolute.path;
|
String destinationDirPath = destination.absolute.path;
|
||||||
|
|
||||||
_templateFilePaths.forEach((String relativeDestPath,
|
_templateFilePaths.forEach((String relativeDestPath, String absoluteSrcPath) {
|
||||||
String absoluteSrcPath) {
|
|
||||||
String finalDestinationPath = path
|
String finalDestinationPath = path
|
||||||
.join(destinationDirPath, relativeDestPath)
|
.join(destinationDirPath, relativeDestPath)
|
||||||
.replaceAll(_kCopyTemplateExtension, '')
|
.replaceAll(_kCopyTemplateExtension, '')
|
||||||
@ -83,14 +81,14 @@ class Template {
|
|||||||
if (finalDestinationFile.existsSync()) {
|
if (finalDestinationFile.existsSync()) {
|
||||||
if (overwriteExisting) {
|
if (overwriteExisting) {
|
||||||
finalDestinationFile.delete(recursive: true);
|
finalDestinationFile.delete(recursive: true);
|
||||||
printStatus('$relativePathForLogging exists. Overwriting.');
|
printStatus(' $relativePathForLogging (overwritten)');
|
||||||
} else {
|
} else {
|
||||||
// The file exists but we cannot overwrite it, move on.
|
// The file exists but we cannot overwrite it, move on.
|
||||||
printStatus('$relativePathForLogging exists. Skipping.');
|
printStatus(' $relativePathForLogging (existing - skipped)');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
printStatus('$relativePathForLogging created.');
|
printStatus(' $relativePathForLogging');
|
||||||
}
|
}
|
||||||
|
|
||||||
finalDestinationFile.createSync(recursive: true);
|
finalDestinationFile.createSync(recursive: true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user