anchor.diff:  
   import 'dart:io';
   
  +import 'package:path/path.dart' as path;
  +
   import 'android/android_workflow.dart';
   import 'base/context.dart';
  -import 'base/process.dart';
  +import 'base/os.dart';
   import 'globals.dart';
   import 'ios/ios_workflow.dart';
   
  
positive.code:     );
  
      ValidationType atomExists() {
        return exitsHappy(<String>['atom', '--version']) ? ValidationType.installed : ValidationType.missing;
      };
  
      ValidationType flutterPluginExists() {
        try {
          // apm list -b -p -i
          List<String> args = <String>['list', '-b', '-p', '-i'];
          printTrace('apm ${args.join(' ')}');
          ProcessResult result = Process.runSync('apm', args);
          if (result.exitCode != 0)
            return ValidationType.missing;
          bool available = (result.stdout as String).split('\n').any((String line) {
            return line.startsWith('flutter@');
          });
          return available ? ValidationType.installed : ValidationType.missing;
        } catch (error) {
          return ValidationType.missing;
        }
      };
  
      atomValidator.addValidator(new Validator(
  
negative.code: }
  
  class _AtomValidator extends DoctorValidator {
    static String getAtomHomePath() {
      final Map<String, String> env = Platform.environment;
      if (env['ATOM_HOME'] != null)
        return env['ATOM_HOME'];
      return os.isWindows
        ? path.join(env['USERPROFILE'], '.atom')
        : path.join(env['HOME'], '.atom');
    }
  
    String get label => 'Atom development environment';
  
    ValidationResult validate() {
  